学习Vue3——生命周期

news2024/9/20 20:42:34

简单来说就是一个组件从创建到销毁的过程称为生命周期

Vue 2 生命周期钩子函数Vue 3 生命周期钩子函数含义
beforeCreatesetup在实例初始化之后、数据观测 (data observer) 和 event/watcher 事件配置之前被调用
createdsetup在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见
beforeMountonBeforeMount组件挂载到节点上之前执行的函数
mountedonMounted组件挂载完成后执行的函数
beforeUpdateonBeforeUpdate组件更新之前执行的函数
updatedonUpdated组件更新完成之后执行的函数
beforeDestroyonBeforeUnmount组件卸载之前执行的函数
destroyedonUnmounted组件卸载完成后执行的函数

在我们使用Vue3 组合式API 是没有 beforeCreatecreated 这两个生命周期的,取而代之是setup

在这里插入图片描述

父组件
vue3组件是直接引入,不需要声明

<template>
  <LifeCycle v-if="flag" />
  <button @click="flag = !flag">创建-销毁</button>
</template>

<script setup lang="ts">
import LifeCycle from './components/LifeCycle.vue'
import { ref } from 'vue'
let flag = ref(true)
</script>

子组件

<template>
  <div>生命周期</div>
  <div ref="domRef">{{ str }}</div>
  <button @click="change">修改</button>
</template>

<script setup lang="ts">
import {
  ref,
  onBeforeMount,
  onMounted,
  onBeforeUpdate,
  onUpdated,
  onBeforeUnmount,
  onUnmounted
} from 'vue'
let str = ref('我是张三')
let domRef = ref()
const change = () => {
  str.value = '我是李四'
}
// beforeCreate created setup语法糖模式下是没有这两个生命周期的
console.log('setup')

// 创建
// onBeforeMount 读不到dom onMounted 可以读取dom
onBeforeMount(() => {
  // 创建之前===>undefined
  console.log(`创建之前===>${domRef.value?.innerText}`)
})
onMounted(() => {
  // 创建完成===>我是张三
  console.log(`创建完成===>${domRef.value.innerText}`)
})

// 更新
// onBeforeUpdate 获取是更新之前的dom ,onUpdated 获取更新后的dom
onBeforeUpdate(() => {
  // 我是张三
  console.log('更新之前===>', domRef.value.innerText)
})
onUpdated(() => {
  // 我是李四
  console.log('更新完成===>', domRef.value.innerText)
})

// 卸载
onBeforeUnmount(() => {
  console.log('卸载之前')
})
onUnmounted(() => {
  console.log('卸载完成')
})
</script>

在这里插入图片描述

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

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

相关文章

手机信号老是卡,问题可能出在这四个原因上!

换手机的速度肯定是赶不上换卡的速度&#xff0c;当手机使用了一定的年限之后&#xff0c;不少小伙伴发现信号网速是越来越差&#xff0c;如果是到“五杀暴走” 的关键时刻&#xff0c;突然的卡顿能让你的心降到冰点&#xff01; 这都是小编和小伙伴们在交流心得的时候得到的一…

uniapp打包app后,微信授权登录

官方文档&#xff1a;App端OAuth(登录鉴权)模块 关键配置项说明&#xff1a; 1、appid 微信开放平台申请应用的AppID值。 2、appSecret&#xff08;HBuilderX3.4.18 不再提供此参数的可视化配置&#xff09; 微信开放平台申请应用的AppSecret值。 找到manifest.json文件&am…

VR全景编辑器v1.0版本上线,为企业提供沉浸式全景可视化服务。

随着物联网技术的迅速发展&#xff0c;可视化技术在物联网中起到越来越重要的作用&#xff0c;当康科技经过不懈努力&#xff0c;研发了自己的一款基于物联网VR全景可视化的编辑器&#xff0c;为企业助力可视化服务。 部分源代码&#xff1a;&#xff1a; // 基础图标图库 ex…

几千万记录,数据库表结构如何平滑变更?

回答知识星球水友“逆光下的微笑”提问。 问题域&#xff1a;数据量大、并发量高场景&#xff0c;如何在流量低峰期&#xff0c;平滑实施表结构变更&#xff1f; 画外音&#xff0c;一般来说&#xff0c;是指增加表的属性&#xff0c;因为&#xff1a;&#xff08;1&#xff09…

手把手教你,本地RabbitMQ服务搭建(windows)

本地RabbitMQ服务搭建&#xff08;windows&#xff09; 前言一、Erlang 环境准备1. 下载安装包2. 安装 二、RabbitMQ服务器安装1. 下载安装包2. 安装RabbitMQ server3. 启动RabbitMQ4. 启动状态检测5. 管理插件启用 三、登录管理界面 前言 前面已经对RabbitMQ介绍了很多内容&a…

Excel怎样对比两列数据的异同

很多用户在使用Excel的时候会碰到一种情况就是将两列数据进行对比&#xff0c;如果数据少则很好用肉眼去对比吗&#xff0c;但是数据一多则就麻烦咯&#xff0c;那么下面小编就来教教大家如何快速对比两列数据的异同。 一&#xff1a;适用于对比不同文字的异同&#xff1b; 首先…

提升测试开发工程师工作效率的法宝:ELK日志平台

目录 前言&#xff1a; 1.什么是ELK 2.如何构建ELK通道 3.使用ELK的思考 前言&#xff1a; ELK日志平台是一个非常有用的工具&#xff0c;可以大大提高测试开发工程师的工作效率。ELK是指Elasticsearch、Logstash和Kibana&#xff0c;这三个开源工具的结合构成了一个功能强…

利用阿里云物联网平台(IoT)实现WEB数据可视化

一年前在阿里物联网平台测试过一个项目&#xff0c;后来就搁置了&#xff0c;昨天有事需要用&#xff0c;发现出错了。 调整完后写一下使用思路&#xff0c;以便未来之需。 阿里云物联网&#xff08;IoT&#xff09;主页&#xff1a;https://iot.aliyun.com/ 阿里云物联网&…

JavaScript中数组高阶函数的使用

一.数组高阶函数---forEach 它可以用来遍历数组中的每个元素&#xff0c;并对每个元素执行指定的操作。forEach函数接受一个回调函数作为参数&#xff0c;该回调函数在遍历数组的每个元素时被调用。 forEach函数的基本语法 array.forEach(callback(currentValue, index, arr…

java操作influxdb时,出现HTTP status code: 401; Message: unauthorized access

使用java操作influxdb出现HTTP status code: 401; Message: unauthorized access 在这里插入图片描述之前创建客户端是这样的 然后关闭客户端连接 后来我尝试吧influxDB null去掉&#xff0c;每次都创建新的连接 然后就行了哦&#xff0c;咱也不知道为啥&#xff0c;反正就…

Web概述

1.1 程序开发架构 1.1.1C/S体系结构介绍 C/S是Client/Server的缩写&#xff0c;即客户端&#xff0f;服务器结构。在这种结构中&#xff0c;服务器 通常采用高性能的机或工作站&#xff0c;并采用大型数据库系统&#xff08;如Oracle或SQLServer)客户端 则需要安装专用的客户…

深入浅出设计模式 - 代理模式

博主介绍&#xff1a; ✌博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家✌ Java知识图谱点击链接&#xff1a;体系化学习Java&#xff08;Java面试专题&#xff09; &#x1f495;&#x1f495; 感兴趣的同学可以收…

qt中c++获取图片qml实时显示的方式1——继承QQuickPaintedItem

通过c opencv获取rtsp视频流&#xff0c;或者视频源&#xff0c;在qml上进行实时视频显示。 一、在QML中通过QQuickPaintedItem动态加载图片 在QML中&#xff0c;可以使用QQuickPaintedItem来创建自定义的可绘制项。通过继承QQuickPaintedItem类&#xff0c;我们可以在QML中动…

这些面试攻略给你2023测试面试带来最强力的支持

在boss和拉钩上投了有几十份简历&#xff0c;其中70%未读状态&#xff0c;30%已读&#xff0c;已读的一半回复要求发送附件简历&#xff0c;然后这周接到面试的有七、八家公司&#xff0c;所以&#xff0c;当前这个大环境真的难 这半个月来&#xff0c;每天安排三到四场面试&a…

自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第八章 恶意软件概念及防范)【建议收藏】

文章目录 一、自学网络安全学习的误区和陷阱二、学习网络安全的一些前期准备三、自学网络安全学习路线一、恶意软件分类1、分类依据2、获取远程控制权类3、维持远程控制权类4、完成特定业务逻辑类 二、恶意软件运行症状1、查看网络连接2、查看系统进程3、查看隐藏文件 三、恶意…

PACS/RIS医学影像管理系统源码 提供先进图像处理和算法

PACS&#xff08;医学影像存档与通信系统&#xff09;主要应用于医学影像的存储、传输和显示。它可以使医生突破胶片的局限&#xff0c;对病人的影像进行全方位的处理和观察&#xff0c;以便得出更准确的诊断。同时&#xff0c;PACS可以节省大量的胶片&#xff0c;降低成本。医…

定积分与几何应用

定积分与几何应用 何谓定积分&#xff1f; ∫ a b f ( x ) d x \int_a^bf(x)dx ∫ab​f(x)dx需满足 a a a、 b b b有限&#xff08;不是无穷&#xff09;且 f ( x ) f(x) f(x)有界 定积分的计算主要依靠NL公式即牛顿莱布尼茨公式 定积分是否存在于原函数是否存在无关 定积分计…

骑士周游问题及优化

文章和代码已经归档至【Github仓库&#xff1a;https://github.com/timerring/java-tutorial 】或者公众号【AIShareLab】回复 java 也可获取。 文章目录 骑士周游问题算法优化意义经典算法面试题-骑士周游问题马踏棋盘算法介绍 骑士周游问题的解决步骤和思路分析 骑士周游问题…

什么是哈希表

哈希表 目录 哈希表哈希函数哈希碰撞拉链法线性探测法常见的三种哈希结构总结 首先什么是 哈希表&#xff0c;哈希表&#xff08;英文名字为Hash table&#xff0c;国内也有一些算法书籍翻译为散列表&#xff0c;大家看到这两个名称知道都是指hash table就可以了&#xff09;。…

Unity3D:Hierarchy 窗口

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 3D工具集&#xff1a; NSDT简石数字孪生 Hierarchy 窗口 打开 Unity 新项目时的默认 Hierarchy 窗口视图 Hierarchy 窗口显示场景中的每个游戏对象&#xff0c;如模型、摄像机或预制件。 可以使用 Hierarchy 窗口对场景中…