vue3 的setup和生命周期

vue3 的setup和生命周期

许多文章认为setup执行时间在beforeCreate 和created 之间,但是通过实际测试发现setup调用在beforecreate之前。

export default {beforeCreate() {console.log('beforeCreate running....');},created() {console.log("created running");},mounted() {console.log("mounted running");},setup() {let info = ref(0);const ins = getCurrentInstance();console.log('setup running....');return{}}
}

执行结果:
在这里插入图片描述
setup确确实实是最先执行了。
在vue3中setup代替了beforeCreate和created,函数里面无法使用data和methods方法中的数据。setup是集成性api,setup中定义的变量和方法,如在template模板中使用,变量需要使用ref或者reactive关键字定义,并且将使用到的方法和变量return出去,不然页面没有效果还报错的。

  • ref 用于定义基本数据加粗样式类型,比如string、number、boolean等。ref的本质其实还是reactive,当我们给ref函数传递一个值之后,ref函数会自动的转化成{value: xx},只是中间自动帮我们套了一层value。const name = ref(1) => name: {value: 1}
  • reactive用于定义复杂数据类型,比如数组、对象等。

在setup 中,有9个旧的生命周期钩子可以访问:

beforeCreate -> use setup()
created -> use setup()
其中setup函数是整合 created跟 beforeCreat
beforeMount ->onBeforeMount (挂载前)
mounted -> onMounted (挂载后)
beforeUpdate -> onBeforeUpdate**(更新前)**
updated -> onUpdated (更新后)
beforeDestroy -> onBeforeUnmount ( 销毁前)
destroyed ->onUnmounted ( 销毁后)

通过解构赋值的方式即可引入:

import { onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted, onActivated, onDeactivated, onErrorCaptured } from 'vue'export default {setup() {onBeforeMount(() => {// ... })onMounted(() => {// ... })onBeforeUpdate(() => {// ... })onUpdated(() => {// ... })onBeforeUnmount(() => {// ... })onUnmounted(() => {// ... })onActivated(() => {// ... })onDeactivated(() => {// ... })onErrorCaptured(() => {// ... })}
}

setup 函数将接收两个参数,props&context

注意:setup函数里面是没有this对象的,使用它的话会报 undefined。

  • setup 函数将接收两个参数,props&context
    第一个参数props,主要是用来获取属性传值,在使用之前必须现在Vue的props属性中先声明,才能在setup函数的第一个参数中获取到。
<template><ButtonClick :name="'MyButton'" />123
</template>
import { getCurrentInstance, ref } from 'vue'export default {props: {name: String},setup(props,ctx) {let info = ref(0);const ins = getCurrentInstance();console.log("props.name",props.name)return {info, handleClick, secondClick, thirdClick}}
}

在这里插入图片描述

- 第二个参数:context
和props一样的用法, 但是不写也可以用,context参数是一个普通的javascript对象,它对组件暴露三个属性:attrs、slots、emit。
attrs和slots是有状态的对象,它们总是会随组件本身的更新而更新。这意味着你应该避免对它们进行解构,并始终以attrs.x或slots.x的方式引用property。attrs和slots是非响应式的。应该在onUpdated生命周期钩子中执行此操作。

attrs:当父组件传递数据给子组件时,子组件不通过props接收,那么父组件传递的数据就到了 setup中的context的attrs属性。
slots:用于接收渲染父组件传递的插槽内容。
emit:向父组件触发事件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2779054.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

什么是ROAS以及它如何衡量广告活动的有效性

有没有想过您的广告活动效果如何&#xff1f;想想 ROAS&#xff0c;即广告支出回报率。ROAS衡量的是每花一美元广告所产生的收入。虽然 ROAS 是一个强大的指标&#xff0c;可以为我们提供丰富的见解&#xff0c;但不应孤立地考虑它。本文将带你了解什么是 ROAS 以及它如何衡量广…

Python Django路由详解

1.路由Router 在实际开发过程中&#xff0c;一个Django 项目会包含很多的 app&#xff0c;这时候如果我们只在主路由里进行配置就会显得杂乱无章&#xff0c;所以通常会在每个app 里&#xff0c;创建各自的 urls.py 路由模块&#xff0c;然后从根路由出发&#xff0c;将 app 所…

C# OpenVino Yolov8 Pose

目录 效果 模型信息 项目 代码 下载 效果 模型信息 Model Properties ------------------------- date&#xff1a;2023-09-07T17:11:43.091306 description&#xff1a;Ultralytics YOLOv8n-pose model trained on /usr/src/app/ultralytics/datasets/coco-pose.yaml a…

【Make编译控制 06】CMake初步使用

目录 一、概述与安装 二、编译源文件 三、无关文件管理 一、概述与安装 CMake是一个跨平台的项目构建工具&#xff0c;相比于Makefile&#xff0c;CMake更加高级&#xff0c;因为CMake代码在执行的时候是会先翻译生成Makefile文件&#xff0c;再调用Makefile文件完成项目构…

Camunda如何发送邮件及委托代码讲解

&#x1f496;专栏简介 ✔️本专栏将从Camunda(卡蒙达) 7中的关键概念到实现中国式工作流相关功能。 ✔️文章中只包含演示核心代码及测试数据&#xff0c;完整代码可查看作者的开源项目snail-camunda ✔️请给snail-camunda 点颗星吧&#x1f618; &#x1f496;什么是委托…

力扣 第 383 场周赛 解题报告 | KMP

力扣 第 383 场周赛 解题报告 | KMP 链接 前言 一个人能走的多远不在于他在顺境时能走的多快&#xff0c;而在于他在逆境时多久能找到曾经的自己。 T1 修改矩阵 思路&#xff1a;模拟 时间复杂度&#xff1a; O ( m n ) O(mn) O(mn) class Solution:def modifiedMatrix(se…

二、Mybatis相关概念

1.对象/关系数据库映射&#xff08;ORM) ORM全称Object/Relation Mapping&#xff1a;表示对象-关系映射的缩写ORM完成面向对象的编程语言到关系数据库的映射。当ORM框架完成映射后&#xff0c;程序员既可以利用面向对象程序设计语言的简单易用性&#xff0c;又可以利用关系数…

leetcode:131.分割回文串

树形结构&#xff1a; 切割到字符串的尾部&#xff0c;就是叶子节点。 回溯算法三部曲&#xff1a; 1.递归的参数和返回值&#xff1a; 参数字符串s和startIndex切割线 2.确定终止条件&#xff1a; 当分割线到字符串末尾时到叶子节点&#xff0c;一种方案出现 3.单层搜索…

290. Word Pattern(单词规律)

题目描述 给定一种规律 pattern 和一个字符串 s &#xff0c;判断 s 是否遵循相同的规律。 这里的 遵循 指完全匹配&#xff0c;例如&#xff0c; pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。 提示: 1 < pattern.length < 300 pa…

036 冒泡排序

代码实践 // 冒泡排序 static void bubbleSort(Comparable[] elements) {// 临时容器&#xff0c;用于变量交换值时存储Object temp;// 标志位 用于减少无意义的循环次数boolean flag;for (int i 0; i < elements.length - 1; i) {flag false;for (int j 0; j < elem…

读取csv数据并转为二维数组

首先我csv文件中数据如上&#xff0c;是个25*4的数据。 现在需要读取&#xff0c;并将其转化为二维数组&#xff0c;方便后续操作。 import csv with open(q_table.csv, r) as file:csv_reader csv.reader(file)data_array []for row in csv_reader:data_array.append(row)…

【Effective Objective - C 2.0】——读书笔记(二)

文章目录 前言六、理解“属性”这一概念七、在对象内部尽量直接访问实例变量八、理解“对象等同性”这一概念九、以“类族模式”隐藏实现细节十、在既有类中使用关联对象存放自定义数据十一、理解objc_msgSend的作用十二、理解消息转发机制动态方法解析备援接受者完整的消息转发…

ElasticSearch快速开始

目录 全文检索 全文检索的原理 什么是倒排索引 ElasticSearch介绍 ElasticSearch应用场景 ElasticSearch下载安装&#xff08;windows&#xff09; 客户端Kibana安装 Elasticsearch安装分词插件 ElasticSearch快速开始 ElasticSearch索引操作 创建索引 查询索引 删…

模拟串口LV2,解决硬件串口资源不足问题!!!!

模拟串口通信 2.0 版本&#xff01;&#xff01; 我在前面的文章里面有写了 虚拟串口通信&#xff0c;虽然说能用&#xff0c;但是用过的小伙伴都说 “好!” 优缺点: 先说一点&#xff0c;2.0版本并不适用于同硬件串口的所有场合&#xff0c;仅仅针对自己开发的电子垃圾的主…

中年低端中产程序员从西安出发到海南三亚低成本吃喝万里行:西安-南宁-湛江-雷州-徐闻-博鳌-陵水-三亚-重庆-西安

文章大纲 旅途规划来回行程的确定南宁 - 北海 - 湛江轮渡成为了最终最大的不确定性&#xff01;感谢神州租车气温与游玩地点总体花费 游玩过程出发时间&#xff1a;Day1-1月25日星期四&#xff0c;西安飞南宁路途中&#xff1a;Day2-1月26日星期五&#xff0c;南宁-湛江-住雷州…

python coding with ChatGPT 打卡第19天| 二叉树:合并二叉树

相关推荐 python coding with ChatGPT 打卡第12天| 二叉树&#xff1a;理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树&#xff1a;翻转…

【C语言——打印乘法口诀表】

乘法表&#xff1a; 我们可以定义一个i控制行的变化&#xff0c;外加看上图的表得知我们需要用到循环结构&#xff0c;i是行需要不停的加加&#xff0c;因此&#xff0c;for循环比较好用&#xff0c;可以用两个嵌套的循环&#xff0c;外层循环即用到的i表示的是每一行的打印&am…

阿里云游戏服务器多少钱一年?

阿里云游戏服务器租用价格表&#xff1a;4核16G服务器26元1个月、146元半年&#xff0c;游戏专业服务器8核32G配置90元一个月、271元3个月&#xff0c;阿里云服务器网aliyunfuwuqi.com分享阿里云游戏专用服务器详细配置和精准报价&#xff1a; 阿里云游戏服务器租用价格表 阿…

《计算思维导论》笔记:10.4 关系模型-关系运算

《大学计算机—计算思维导论》&#xff08;战德臣 哈尔滨工业大学&#xff09; 《10.4 关系模型-关系运算》 一、引言 本章介绍数据库的基本数据模型&#xff1a;关系模型-关系运算。 二、什么是关系运算 在数据库理论中&#xff0c;关系运算&#xff08;Relational Operatio…

PKI - 借助Nginx 实现Https_使用CA签发证书

文章目录 Pre概述操作步骤1. 生成 CA 密钥对2. 生成自签名的 CA 证书3. 生成服务器密钥对和证书签名请求 (CSR)4. 使用 CA 签署服务器证书 Nginx Https 自签证书1. 生成自签名证书和私钥2. 配置 Nginx 使用 CA签发的 HTTPS 证书3. 重启 Nginx 服务4. 直接访问5. 不验证证书直接…