Vue3 学习笔记 —— 生命周期

这篇博客探讨了Vue3.x与Vue2.x中生命周期的变化。内容指出Vue3.x的生命周期钩子比Vue2.x提前执行,并且在Vue3.x中推荐使用onBeforeMount、onMounted等新钩子代替beforeCreate和created。Vue2.x的卸载钩子在Vue3.x中被重命名为onBeforeUnmount和onUnmounted。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 目录结构如下:
    在这里插入图片描述
  • App.vue
<template>
  <Child :count="count" v-if="isShow" @addCount="addCount"/>
  <button @click="isShow=!isShow">切换显示</button>
</template>

<script lang="ts">

import { defineComponent, ref} from 'vue';
import Child from './components/Child.vue';

export default defineComponent({
  components: { Child },
  name: 'App',
  setup() {
    let isShow = ref(true)
    let count = ref(0)

    let addCount = () => {
      count.value++
    }

    return {
      isShow,
      count,
      addCount
    }
  }

});
</script>

  • Child.vue
<template>
Child {{count}}
<button @click="addCount">+1</button>
</template>

<script lang="ts">

// 需要引入
import { defineComponent, onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted} from 'vue';

export default defineComponent({
  name: 'Child',
  props: ['count'],
  // vue 2.x 生命周期钩子
  beforeCreate() {
    console.log('2.x---beforeCreate')
  },
  created() {
    console.log('2.x---created')
  },
  beforeMount() {
    console.log('2.x---beforeMount')
  },
  mounted() {
    console.log('2.x---mounted')
  },
  beforeUpdate() {
    console.log('2.x---beforeUpdate')
  },
  updated() {
    console.log('2.x---updated')
  },
  // 2.x 的 组件卸载钩子被更名
  beforeUnmount() {
    console.log('2.x---beforeUnmount')
  },
  unmounted() {
    console.log('2.x---unmounted')
  },

  // vue 3.x 生命周期 Composition Api
  setup (props, {emit}) {
    console.log('3.x---setup')

    onBeforeMount(()=>{
      console.log('3.x---onBeforeMount')
    })
    onMounted(()=>{
      console.log('3.x---onMounted')
    })
    onBeforeUpdate(()=>{
      console.log('3.x---onBeforeUpdate')
    })
    onUpdated(()=>{
      console.log('3.x---onUpdated')
    })
    onBeforeUnmount(()=>{
      console.log('3.x---onBeforeUnmount')
    })
    onUnmounted(()=>{
      console.log('3.x---onUnmounted')
    })

    let addCount = ()=>{
          emit('addCount')
    }

    return {
      addCount
    }
  },
});
</script>
  • 测试截图:
    在这里插入图片描述

  • 点击 +1
    在这里插入图片描述

  • 点击切换显示
    在这里插入图片描述

  • 结论:

  1. vue3.x 生命周期钩子比 vue2.x生命周期钩子先执行
  2. 在 vue3.x 中使用 setup 代替 beforeCreatecreated
  3. 在 vue2.x 中 关于组件卸载的钩子被更名为 beforeUnmountunmounted
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

tanleiDD

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

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

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

打赏作者

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

抵扣说明:

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

余额充值