首页 > 其他分享 >关于 Vue.js v2 和 v3 生命周期的概述以及它们之间的区别

关于 Vue.js v2 和 v3 生命周期的概述以及它们之间的区别

时间:2023-08-28 15:37:40浏览次数:52  
标签:Vue DOM 调用 v3 js v2 实例 组件

Vue.js v2 的生命周期包括以下阶段:

1、 beforeCreate: 在实例初始化之后、实例数据观测和事件配置之前被调用。

2、created: 实例已经创建完成,数据观测和事件配置已完成,但尚未挂载到 DOM 上。

3、beforeMount: 在挂载之前被调用,相关的 render 函数首次被调用。

4、mounted: 实例已经挂载到 DOM 上后调用,此时组件已经渲染到页面上。

5、beforeUpdate: 数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。

6、updated: 数据更新完成时调用,虚拟 DOM 重新渲染和打补丁已完成。

7、beforeDestroy: 实例销毁之前调用,此时实例仍然完全可用。

8、destroyed: 实例销毁后调用,此时实例所有的指令已解绑,事件监听器已移除。


Vue.js v3 对生命周期进行了一些改变。以下是 v3 的生命周期阶段:

1、beforeCreate: 与 v2 中的相同,实例初始化之后、实例数据观测和事件配置之前。

2、created: 与 v2 中的相同,实例已经创建完成,数据观测和事件配置已完成,但尚未挂载到 DOM 上,一般发请求都是在这发

3、beforeMount: 与 v2 中的相同,在挂载之前被调用,相关的 render 函数首次被调用。

4、mounted: 与 v2 中的相同,实例已经挂载到 DOM 上后调用,组件已经渲染到页面上。

5、beforeUpdate: 在更新之前被调用,与 v2 中的 beforeUpdate 类似。

6、updated: 在更新之后被调用,与 v2 中的 updated 类似。

7、beforeUnmount: 在卸载之前被调用,取代了 v2 中的 beforeDestroy。

8、unmounted: 在卸载之后被调用,取代了 v2 中的 destroyed。


从 v2 到 v3,最明显的更改是将销毁阶段的名称从 beforeDestroy 和 destroyed 改为 beforeUnmount 和 unmounted。这是为了更准确地反映组件的生命周期,因为在 v3 中,组件的卸载与 DOM 的卸载解耦,更加灵活。

另一个重要的改变是,v3 引入了 setup 函数,它是在 beforeCreate 和 created 阶段之间执行的。setup 函数提供了一种新的方式来编写组件逻辑,并且可以在组件实例创建之前初始化数据、引入组合式 API 等。

总结起来,Vue.js v3 的生命周期在命名上进行了一些调整,并且引入了 setup 函数,以提供更灵活的组件编写方式。

标签:Vue,DOM,调用,v3,js,v2,实例,组件
From: https://blog.51cto.com/u_16235140/7264305

相关文章

  • cocos2dx 3.x打包出现Can't find config file .cocos-project.json in path
    youcanjustcreatea.cocos-project.jsonfileyourself.Allitcontainsisthefollowingcode: {"project_type":"cpp"如果是lua工程话,直接修改成lua即可。......
  • 百度:为vue站添加百度统计
    一,登录百度统计获取统计代码:使用设置->网站列表->新增网站:填写数据后点确定:配置单页:复制代码:二,添加代码到vue的html页面12345678910111213141516171819202122232425262728293031323334353637<!DOCTYPEhtml><......
  • Vue【原创】日历组件
    最近项目中封装了一个日历组件,用于节假日管理,支持输入默认选中的日期,选择管理日期。效果图: calendar组件:1<template>2<divclass="calendar">3<slotname="title">4<divclass="calendar-title">{{curYearMont......
  • Js操作Select大全(取值、设置选中等等)
    Js操作Select大全(取值、设置选中等等) jquery操作select(取值,设置选中)每一次操作select的时候,总是要出来翻一下资料,不如自己总结一下,以后就翻这里了。比如<selectclass="selector"></select>1、设置value为pxx的项选中$(".selector").val("pxx");2、设置text为pxx的项选中$......
  • DWR util.js 整理(DWR 处理各种form表单Select/option,table等,
    /********************/util.js包含一些有用的函数function,用于在客户端页面调用.主要功能如下:代码$()获得页面参数值addOptionsandremoveAllOptions初始化下拉框addRowsandremoveAllRows填充表格getText取得text属性值getValue取得form表......
  • JSTL中forEach标签 varStatus属性值
    特性        Getter                     描述current   getCurrent()         当前这次迭代的(集合中的)项index      getIndex()              当前这次迭代从0开始的迭代索引count     getCount()......
  • JSP获得服务端与客户端信息
    System.out.println("Protocol:"+request.getProtocol());System.out.println("Scheme:"+request.getScheme());System.out.println("ServerName:"+request.getServerName());System.out.println("ServerPort:"+re......
  • Vue3 使用Vuex与Vuex-persistedstate
    Vuex与vuex-persistedstateVuex是什么?Vuex是一个用于Vue.js应用程序的状态管理模式。它使得在应用程序中的所有组件之间共享和访问状态变得非常简单。Vuex将应用程序的状态存储在一个单一的存储库中,并且提供了一组用于更改状态的API。这使得状态管理变得更加可预测和易于调试。......
  • vue element 多个Form 表单同时验证
     多个Form内容统一提交验证1<el-formref="form1"></el-form>2<el-formref="form2"></el-form>3<el-formref="form3"></el-form>4<el-formref="form4"></el-form>......
  • jsp(JAVA)伪静态的具体设置过程
    一:到  http://tuckey.org/urlrewrite/  下载urlrewrite架包(推荐2.6.0)二:解压所下载的文件,把urlrewrite-2.6.0.jar复制到项目的WebRoot/WEB-INF/lib/目录下三:把urlrewrite.xml复制到项目的WebRoot/WEB-INF/目录下四:在web.xml文件中加入以下<filter><filter-name>UrlRewriteFil......