当前位置: 首页 > news >正文

vue3 setup的四点注意

1 setup函数本身的执行时间,是在beforeCreated生命周期开始前.

beforeCreate() {
    console.log('--beforeCreate--')
  },
setup() {
    console.log('--setup--')
}

在这里插入图片描述

2 setup中无法使用this

这是很多初学者常犯的错误之一

  beforeCreate() {
    console.log('--beforeCreate--')
  },
  setup(props: Data) {
    console.log(this)
 }

在这里插入图片描述

3 setup的两个参数 第一个参数是props 第二个参数是context

  beforeCreate() {
    console.log('--beforeCreate--')
  },
  setup(props: Data, context: any) {
    console.log(props)
    console.log(context)
 }

在这里插入图片描述
props 是组件声明的接收参数,是一个proxy对象
context 是一个普通对象,但里面有三个属性值得我们关注

  1. attrs 相当于vue2 中的$attrs 如果父组件给子组件传递了某一个参数,但在子组件的props中并未声明,就会出现在这个attrs的proxy对象中.
  2. emit 就是vue2中的$emit ,用来自定义事件触发
  3. slots 插槽,vue2中的$slots , 值得一提的是 vue3中,父组件的具名插槽,请使用v-slot:xxx 或者#xxx的写法。slots也是一个proxy对象。

4 setup又叫组合式api,有一套自己的生命周期

vue3选项式APIsetup组合式API
beforeCreate不需要(直接写到setup函数中)
created不需要(直接写到setup函数中)
beforeMountonBeforeMount
mountedonMounted
beforeUpdateonBeforeUpdate
updatedonUpdated
beforeDestroyedonBeforeUnmount
destroyedonUnmounted

一般来说,我们使用了setup组合api,就不用vue3的选项api了,如果混用,可能会让代码很乱。
另外所有的组合式api都必须写在setup内部,使用前也必须引入。

import { onMounted } from 'vue'
export default {
	beforeCreate() {
	    console.log('--beforeCreate--')
	  },
	setup(props: Data) {
	  onMounted(() => {
	    console.log('--onMounted--')
	  })
	}
}

相关文章:

  • Python 输入与输出
  • 基于JAVA校园租赁系统的设计与实现计算机毕业设计源码+系统+数据库+lw文档+部署
  • 【Linux初阶】从0到1带你用云服务器搭建Linux环境
  • Kubernetes技术与架构-10
  • 基于微信小程序云开(统计学生信息并导出excel)3.0版
  • 【JAVAEE框架】浅谈 AOP 及代码实现
  • React获取DOM和获取组件实例的方式
  • [Spark、hadoop]spark Streaming的核心DStream
  • 【Vue】父子组件通信
  • API接口开发其实特简单,Python Flask Web 框架教程来了
  • SpringMVC03之拦截器和JSR303
  • 索引失效案例
  • 机器学习笔记 - Albumentations库实现的图像增强功能一览
  • 软考-存储系统
  • 大学生网页设计制作作业实例代码 (全网最全,建议收藏) HTML+CSS+JS
  • javascript从右向左截取指定位数字符的3种方法
  • Java程序员幽默爆笑锦集
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Vue2 SSR 的优化之旅
  • Webpack 4 学习01(基础配置)
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • Windows Containers 大冒险: 容器网络
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 类orAPI - 收藏集 - 掘金
  • 巧用 TypeScript (一)
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #pragma pack(1)
  • #QT(智能家居界面-界面切换)
  • (2)STL算法之元素计数
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (Java数据结构)ArrayList
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • .net web项目 调用webService
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • ::前边啥也没有
  • [ SNOI 2013 ] Quare
  • [@Controller]4 详解@ModelAttribute
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [CareerCup][Google Interview] 实现一个具有get_min的Queue
  • [CSS]盒子模型
  • [Flex] PopUpButton系列 —— 控制弹出菜单的透明度、可用、可选择状态
  • [Flutter]打包IPA
  • [go] 策略模式
  • [JavaScript]_[初级]_[不使用JQuery原生Ajax提交表单文件并监听进度]
  • [leetcode]114. Flatten Binary Tree to Linked List由二叉树构建链表
  • [Linux] Boot分区满了的处理方法 The volume boot has only 0 bytes disk space remaining
  • [Machine Learning][Part 7]神经网络的基本组成结构
  • [RK-Linux] 移植Linux-5.10到RK3399(一)| 搭建系统并让系统跑起来
  • [Swift]计数排序 | Counting sort【用微信查看本文链接可查看到引用图片】
  • [uniapp的页面传参]详细讲解uniapp中页面传参的传递方式和接受方式 使用案例 代码注释
  • [Web开发] 检测IE版本号的方法总结
  • [笔记]8组LVDS_TX和LVDS_RX的调试心得