vue3生命周期

vue3生命周期

一、Vue2和Vue3生命周期的差异

Vue2(选项式API) Vue3(setup) 描述
beforeCreate - 实例创建前
created - 实例创建后
beforeMount onBeforeMount DOM挂载前调用
mounted onMounted DOM挂载完成调用
beforeUpdate onBeforeUpdate 数据更新之前被调用
updated onUpdated 数据更新之后被调用
beforeDestroy onBeforeUnmount 组件销毁前调用
destroyed onUnmounted 组件销毁完成调用

选项式Api写法:

复制代码
<script>
export default{mounted(){console.log('挂载完成')}
}
</script> 

组合式Api写法:

复制代码
import {onMounted} from "vue"

export default {
  name: 'AboutView',
  setup() {
    onMounted(()=>{
      console.log("onMounted");
    })

    return{
    }
  },
}

setup语法糖:

复制代码
<script setup>
import { onMounted } from "vue";
onMounted(()=>{console.log('挂载完成')
})
</script> 

总结

Vue3中的生命周期相对于Vue2做了一些调整,命名上发生了一些变化并且移除了beforeCreate和created,因为setup是围绕beforeCreate和created生命周期钩子运行的,所以不再需要它们。

二、取消filter

在 3.x 中,过滤器已移除,且不再支持。取而代之的是,我们建议用方法调用或计算属性来替换它们。

三、v-if 与 v-for 的优先级调整

2.x 版本中在一个元素上同时使用 v-if 和 v-for 时,v-for 会优先作用。

3.x 版本中 v-if 总是优先于 v-for 生效。

四、全局API改变

1.vue2中全局API挂在Vue上,vue3挂在vue实例上 app

比如定义全局组件:

复制代码
// vue2
import Vue from 'vue';
Vue.component('loading', {})

// vue3
import { createApp } from 'vue'
let app =  createApp(App);
app.component('loading', {})

vue官网:

相关推荐
人工智能训练15 分钟前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
会跑的葫芦怪1 小时前
若依Vue 项目多子路径配置
前端·javascript·vue.js
xiaoqi9222 小时前
React Native鸿蒙跨平台如何进行狗狗领养中心,实现基于唯一标识的事件透传方式是移动端列表开发的通用规范
javascript·react native·react.js·ecmascript·harmonyos
jin1233222 小时前
React Native鸿蒙跨平台剧本杀组队消息与快捷入口组件,包含消息列表展示、快捷入口管理、快捷操作触发和消息详情预览四大核心功能
javascript·react native·react.js·ecmascript·harmonyos
烬头88214 小时前
React Native鸿蒙跨平台实现二维码联系人APP(QRCodeContactApp)
javascript·react native·react.js·ecmascript·harmonyos
pas1364 小时前
40-mini-vue 实现三种联合类型
前端·javascript·vue.js
摇滚侠4 小时前
2 小时快速入门 ES6 基础视频教程
前端·ecmascript·es6
2601_949833394 小时前
flutter_for_openharmony口腔护理app实战+预约管理实现
android·javascript·flutter
珑墨4 小时前
【Turbo】使用介绍
前端
军军君015 小时前
Three.js基础功能学习十三:太阳系实例上
前端·javascript·vue.js·学习·3d·前端框架·three