Vue3中的 setup 是什么?

embedded/2024/10/18 18:23:27/

setup是什么

  1. setup是在组件中使用组合式API的入口
  2. setup函数是处于 生命周期函数 beforeCreate 和 Created 两个生命周期之间的函数 也就说在 setup函数中是无法 使用 data 和 methods 中的数据和方法的
  3. 在setup函数中定义的变量和方法最后都是需要 return 出去的 不然无法再模板中使

参数

接受两个参数,一个参数是props,可以接收到父组件传递的数据,如果props是一个动态的值,那么他就是响应式的,会随着父组件的改变而更新。但是因为他是响应式的因此不能使用es6解构。
如果需要解构props,需要使用toRefs函数

setup(props, context){const { user } = Vue.toRefs(props)console.log(user.value)
}

如果props是可选props,则应该使用toRef代替他

setup(props, context){const { user } = Vue.toRef(props, 'user')console.log(user.value)
}

接收的第二个参数是context对象,这是一个js对象,暴露了三个属性,attrs、slots、emit,因为是普通的js对象因此是可以用es6解构的。
● attrs对象是父组件传递给子组件且不在props 中定义的静态数据,它是非响应式的,相当于在没有使用setup方法时调用的 this.$attrs 效果。

● slots对象主要是父组件传递的插槽内容,注意v-slot:slotone需要配置插槽名字,这样 slots才能接收到,它是非响应式的,相当于在没有使用setup方法时调用的this.$slots 效果。

● emit对象主要用来和父组件通信,相当于在没有使用setup方法时调用的this.$emit效果。
如果setup方法返回一个对象,那么该对象的属性以及传递给setup的props参数中的属性都可以在模板中访问。
props中的数据不必在setup中返回,vue会自动暴露给模板使用。
setup方法在beforeCreate之前执行,由于此时组件还没有实例化,是无法通过this.xx访问当前实例的上下文的
但vue还是在组合式api中提供了getCurrentInstance方法来访问组件实例的上下文对象,只能在setup和生命周期钩子中调用;并不建议在业务逻辑中使用该方法。


http://www.ppmy.cn/embedded/126343.html

相关文章

使用Jenkins部署项目

部署中的痛点 为什么要用Jenkins?我说下我以前开发的痛点,在一些中小型企业,每次开发一个项目完成后,需要打包部署,可能没有专门的运维人员,只能开发人员去把项目打成一个exe包,可能这个项目已…

tcl脚本中的info用法

在 TCL 脚本 中,info 命令用于获取与程序执行状态相关的各种信息。它能够返回当前环境中的变量、命令、函数等的详细信息,是调试和控制流程时非常有用的工具。以下是 info 命令的常见用法和应用场景: 1. 获取所有变量 set a 10 set b 20 pu…

什么是词嵌入(Word Embedding)

1. 什么是词嵌入(Word Embedding) ⾃然语⾔是⼀套⽤来表达含义的复杂系统。在这套系统中,词是表义的基本单元。顾名思义,词向量是⽤来表⽰词的向量,也可被认为是词的特征向量或表征。把词映射为实数域向量的技术也叫词嵌⼊(word e…

息肉检测数据集 yolov5 yolov8适用于目标检测训练已经调整为yolo格式可直接训练yolo网络

息肉检测数据集 yolov5 yolov8格式 息肉检测数据集介绍 数据集概述 名称:息肉检测数据集(基于某公开的分割数据集调整)用途:适用于目标检测任务,特别是内窥镜图像中的息肉检测格式:YOLO格式(边…

从零开始构建:Python自定义脚本自动化你的日常任务

从零开始构建:Python自定义脚本自动化你的日常任务 Python 作为一种简洁且功能强大的编程语言,被广泛应用于各种自动化任务中。通过编写 Python 脚本,你可以轻松地将日常重复性工作自动化,例如文件操作、数据处理、网络爬虫、系统…

探索TCP协议的奥秘:Python中的网络通信

引言 在网络通信的世界里,TCP协议(传输控制协议)就如同一座桥梁,连接着数据的发送方和接收方。作为一名拥有20年实战经验的编码专家,我深知TCP协议在构建稳定、可靠的网络应用中的重要性。今天,我将带领大…

面试字节跳动精选20道产品经理面试题分析回答

分享20道字节跳动产品经理的面试题,产品经理的面试很多会跟项目强关联,比如面试电商产品经理,就要多聊电商的业务,所以我们选了一些比较通用的,面试题及我们的分析回答。 01 20道面试题(前10道&#xff0…

【动手学深度学习】5.2 参数管理(个人向笔记+代码注释)

之前的课程中,我们只是通过深度学习框架完成训练的工作,而忽略了操作参数的具体细节。所以我们我们介绍的内容有: 访问参数,用于调试,诊断和可视化参数初始化在不同的模型组件间共享参数 下面是一个有单隐藏层的多层感…