生命周期---Vue2Vue3

news/2024/9/25 16:25:42

生命周期---Vue2&Vue3

简单理解为:组件从创建到被销毁的一个过程,就相当于人的一生,从出生到死亡的一个过程。

组件的生命周期

也称生命周期、生命周期函数、生命周期钩子

生命周期在特定的时刻会调用特定的函数

生命周期分为四个阶段,每个阶段都有两个钩子,现只讨论这八个钩子

Vue2的生命周期:

创建

  • 创建前: beforeCreate
  • 创建完毕: created

挂载

  • 挂载前: beforeMount
  • 挂载完毕: mounted

更新

  • 更新前: beforeUpdate
  • 更新完毕: updated

销毁

  • 销毁前: beforeDestory
  • 销毁完毕: destroyed
<template><div class="person"><h2>当前求和为:{{ sum }}</h2><button @click="addSum">点我sum+1</button></div>
</template><script>export default {name:'Person',data (){return{sum: 0}},methods:{addSum(){this.sum += 1}},// 创建前和钩子beforeCreate(){console.log('创建前');},// 创建完毕的钩子created(){console.log('创建完毕');},// 挂载前beforeMount(){console.log('挂载前');},// 挂载完毕mounted(){console.log('挂载完毕');},// 更新前beforeUpdate(){console.log('更新前');},// 更新完毕updated(){console.log('更新完毕');},// 销毁前beforeDestroy(){console.log('销毁前');},// 销毁完毕destroyed(){console.log('销毁完毕');},}
</script>

Vue3的生命周期

创建

  • setup

挂载

  • 挂载前: onBeforeMount
  • 挂载完毕: onMounted

更新

  • 更新前: onBeforeUpdate
  • 更新完毕: onUpdated

卸载

  • 卸载前: onBeforeUnmount
  • 卸载完毕: onUnmounted
<template><div class="person"><h2>当前求和为:{{ sum }}</h2><button @click="addSum">点我sum加1</button></div>
</template><script lang="ts" setup name="Person">import {onBeforeMount, onBeforeUpdate, onMounted, onUpdated, onBeforeUnmount,onUnmounted,ref} from 'vue'let sum = ref(0)function addSum(){sum.value += 1}// 创建console.log('创建');// 挂载前onBeforeMount(()=>{console.log('挂载前');})// 挂载完毕onMounted(()=>{console.log('子---挂载完毕');})// 更新前onBeforeUpdate(()=>{console.log('更新前');})// 更新完毕onUpdated(()=>{console.log('更新完毕');})// 卸载前onBeforeUnmount(()=>{console.log('卸载前');})// 卸载完毕onUnmounted(()=>{console.log('卸载完毕');})
</script>
<style>
</style>

App.vue是根组件,必须等所有子组件和子子组件挂载完成(深度遍历),根组件才算完成

创建项目

Vue2

安装脚手架: npm i -g @vue/cli

创建项目: vue create vue2_project

package.json里面有serve,所以启动项目就是: npm run serve

进入刚刚创建的项目里面,然后来启动

注意:这两条代码写进项目里可以忽略警告!

只关闭这一行代码警告
// eslint-disable-next-line关闭以下所以代码警告
/* eslint-disable */

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

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

相关文章

怎么使用 MarsEdit 来管理博客园的博客

MarsEdit 可以管理任何支持 MetaWeblog 协议的博客。这点来说,比 ia writer 这类只支持 wordpress, ghost 这些主流博客架构的文本编辑器还是强很多的。要用 MarsEidt 来管理博客园,需要以下几步: 1. 在博客园上申请访问令牌 2. 在 MarsEdit 上添加博客园网址 3. 添加账号、…

Jenkins script example

1. 参数化构建2. Jenkins scriptpodTemplate(name: jenkins-slave-4000, cloud: kubernetes,namespace: default, label: jenkins-slave-4000,containers: [containerTemplate(name: jnlp,image: "${HARBOR_URL}/ops/jenkins-slave:v2.2.2",alwaysPullImage: true),]…

SystemVerilog -- 3.0 SystemVerilog Threads

SystemVerilog Threads What are SystemVerilog threads or processes ? thread 或 process 是作为单独实体执行的任何一段代码。在 verilog 中,每个initial和always块都作为单独的 thread 生成,这些 threads 从 0 time 开始并行运行。block 还会创建并运行的不同 threads。…

24年5.12流片复盘

非常值得纪念的一天,因为去年这个时候流片delay,今年顺利流出去了,这是一个大的进步,但是还是要做复盘。 首先是进度整体上的复盘。这次流片从一月初开始进行规划,到五月初投片,总共花费五个月时间,五个月内,按照最初的时间规划,一月是把规划基本都做完,给项目参与人…

kettle从入门到精通 第五十九课 ETL之kettle 邮件发送多个附件,使用正则轻松解决

问题场景: 一个朋友说他用kettle将生成好的多个文件(a.xls和b.xls,文件在data目录下)发送给客户,但是data目录下还有其他的文件,他如果指定data目录发送会把 data目录下面的所有文件都作为附件进行发送,显然不符合要求,所以他当时的临时解决方法是创建个临时目录,里面…

VSCode养宠物

安装扩展vscode-pets https://marketplace.visualstudio.com/items?itemName=tonybaloney.vscode-pets 安装好后点击右下角的小松鼠图标选择一个宠物 选择一个颜色 起一个名字 回车 如果想要删除 ctrl + shift + p Pet Coding: Remove pet

抽丝剥茧:详述一次DevServer Proxy配置无效问题的细致排查过程

事情的起因是这样的,在一个已上线的项目中,其中一个包含登录和获取菜单的接口因响应时间较长,后端让我尝试未经服务转发的另一域名下的新接口,旧接口允许跨域请求,但新接口不允许本地访问(只允许发布测试/生产的域名访问)。 问题 那么问题来了,本地环境该如何成功访问到…

QT: Expression:c = -1 c = 255

报错内容分析错误 注意看报错位置位于isctype.cpp文件的Line:36我们打开isctype.cpp,其36行内容如下 extern "C" int __cdecl _chvalidator(int const c, int const mask) {_ASSERTE(c >= -1 && c <= 255);return _chvalidator_l(nullptr, c, mask); …