Vue3.x 版本的生命周期钩子函数

setup()    开始创建组件之前,在beforeCreatecreated之前执行。创建的是datamethod

最新参考27.Vue3语法-组合式API-生命周期函数

//必须先引用再使用
import {onBeforeMount,onMounted,onUpdated,onBeforeUnmoun,onUnmounted} from 'vue'


//组件挂载到节点上之前执行的函数
onBeforeMount() 
 
//组件挂载完成后执行的函数    
onMounted() 

//组件更新之前执行  
onBeforeUpdate()

//组件更新之后执行      
onUpdated()      

//在组件卸载之前
onBeforeUnmount()   vue2

//组件销毁之后执行
onUnmounted()

<keep-alive></keep-alive> 

被包含在<keep-alive>中的组件,会多出两个生命周期钩子函数。

//被激活时执行
onActivated()  

//比如从 A 组件,切换到 B 组件,A 组件消失时执行
onDeactivated()
//当捕获一个来自子孙组件的异常时激活钩子函数
onErrorCaptured()

Vue2 和 Vue3 的对比

Vue2--------------vue3
beforeCreate  -> setup()
created       -> setup()
beforeMount   -> onBeforeMount
mounted       -> onMounted
beforeUpdate  -> onBeforeUpdate
updated       -> onUpdated
beforeDestroy -> onBeforeUnmount
destroyed     -> onUnmounted
activated     -> onActivated
deactivated   -> onDeactivated
errorCaptured -> onErrorCaptured

调试之用?!

//状态跟踪,它会跟踪页面上所有响应式变量和方法的状态,也就是我们用return返回去的值,他都会跟踪。只要页面有update的情况,他就会跟踪,然后生成一个event对象,我们通过event对象来查找程序的问题所在
onRenderTracked()

//状态触发,它不会跟踪每一个值,而是给你变化值的信息,并且新值和旧值都会给你明确的展示出来
onRenderTriggered()
<template>
  <div class="container">
    <h1>今天中午吃什么呢?</h1>
    <div>请你从下面选择一下</div>
    <div>
      <button
        v-for="(item, index) in eats"
        :key="index"
        @click="chooseEatFun(index)"
      >
        {{ index }}:{{ item }}
      </button>
    </div>
    <div>今天中午吃【{{ chooseEat }}】,let's go!</div>
  </div>
</template>

<script lang="ts">
import { reactive, toRefs, onRenderTriggered } from "vue";
interface dataProps {
  eats: string[];
  chooseEat: string;
  chooseEatFun: (index: number) => void;
}

export default {
  name: "App",
  setup() {
    const data: dataProps = reactive({
      eats: ["煲仔饭", "大食堂", "火锅2"],
      chooseEat: "",
      chooseEatFun: (index: number) => {
        data.chooseEat = data.eats[index];
      },
    });
    const refData = toRefs(data);
    onRenderTriggered((event) => {
      console.log(event);
    });
    return {
      ...refData,
    };
  },
};
</script>

<style lang="less" scoped>
</style>
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue 2和Vue 3都有一些常用的生命周期钩子函数,但在Vue 3中有一些变化。以下是Vue 2和Vue 3中常用的生命周期钩子函数Vue 2中的生命周期钩子函数: 1. beforeCreate: 实例创建之前调用,此时数据观测(data observer)和事件配置(event/watcher)尚未初始化。 2. created: 实例创建完成后调用,此时已经完成了数据观测(data observer)和事件配置(event/watcher)。 3. beforeMount: 在挂载之前调用,在这个时候模板已经编译完成,但是还未挂载到页面中。 4. mounted: 在挂载完成后调用,此时组件已经被挂载到页面中,可以访问到DOM元素。 5. beforeUpdate: 在数据更新之前调用,发生在虚拟DOM重新渲染和打补丁之前。 6. updated: 在数据更新之后调用,发生在虚拟DOM重新渲染和打补丁之后。 7. beforeDestroy: 在实例销毁之前调用,此时实例仍然完全可用。 8. destroyed: 在实例销毁之后调用,此时实例已经被销毁,所有的事件监听器和子实例都被删除。 Vue 3中的生命周期钩子函数: 1. beforeCreate: 与Vue 2相同,在实例创建之前调用。 2. created: 与Vue 2相同,在实例创建完成后调用。 3. beforeMount: 与Vue 2相同,在挂载之前调用。 4. mounted: 与Vue 2相同,在挂载完成后调用。 5. beforeUpdate: 与Vue 2相同,在数据更新之前调用。 6. updated: 与Vue 2相同,在数据更新之后调用。 7. beforeUnmount: 在组件卸载之前调用,此时组件仍然完全可用。 8. unmounted: 在组件卸载之后调用,此时组件已经被卸载,所有的事件监听器和子组件都被删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

屋顶上的小喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值