vue3生命周期

一个组件初始化到卸载整个执行过程。官方提供了一组钩子函数用作周期函数。

vue2组件中声明周期钩子函数写法

 
  
export default {
//选项式钩子函数
mounted() {
console.log(`the component is now mounted.`)
}
}

生命周期图示

vue3中新增组合式API setup (也叫setup周期)

setup代替了之前vue2的初始化阶段周期。

vue3生命周期_第1张图片

vue3中提供的声明周期钩子函数

vue3生命周期_第2张图片

1.onMounted()

声明周期挂载完成函数

 
  
//挂载完成周期
onMounted(() => {
console.log("挂载完成");
});
onMounted(() => {
console.log("挂载完成");
});

2.onBeforeMount()

生命周期挂载之前。

 
  
//挂载之前
onBeforeMount(() => {
console.log("挂载之前");
});

3.onBeforeUnmount()

生命周期卸载之前

 
  
//卸载完成
onUnmounted(() => {
console.log("卸载完成");
});

4.onBeforeUpdate()

生命周期更新之前 数据data发生变化 DOM节点没有更新

 
  
//更新之前
onBeforeUpdate(() => {
console.log("更新之前");
});

5.onUpdated()

生命周期更新之后,DOM节点更新

 
  
//更新完成
onUpdated(() => {
console.log("更新之后");
});

生命周期流程图

vue3生命周期_第3张图片

 
  
vue3中使用setup代替vue2 初始化周期。

setup中可以直接发送网络请求--作为之前的初始化发送

vue中设置全局变量

 
  
Vue.prototype.$message //vue2

vue3变成

vue3生命周期_第4张图片

 
  
app.config.globalProperties = {
title: "测试版本",
};

vue3组件使用setup中获取全局变量

 
  
setup中不能直接使用变量 原因是setup中没有this

import {getCurrentInstance} from 'vue'


//获取当前实例
let instance = getCurrentInstance();
//console.log(instance?.proxy?.title); //可以获取全局变量
console.log(instance?.appContext.config.globalProperties.title);

你可能感兴趣的:(vue.js,javascript,前端)