VUE3-生命周期

文章详细介绍了Vue3中组件的生命周期变化,setup函数替代了beforeCreate和created,同时展示了选项式API和组合式API两种生命周期钩子的写法。在Vue3中,beforeDestroyed变为beforeUnmount,unmounted代替了destroyed,且提供了如onBeforeMount、onMounted等新的生命周期方法。

VUE3-生命周期

生命周期图

img

img

钩子函数写法

  • 由于setup是在before Created和created之前的所以setup代替了他们
  • vue2中的destroyed命名成了unmounted, beforeDestroyed 命名成了 beforeUnmount

选项式API

export default {
  beforeCreate() {
    console.log('beforeCreate');
  },
  created() {
    console.log('created');
  },
  beforeMount() {
    console.log('beforeMount');
  },
  mounted() {
    console.log('mounted');
  },
  beforeUpdate() {
    console.log('beforeUpdate');
  },
  update() {
    console.log('update');
  },
  beforeUnmount() {
    console.log('beforeUnmount');
  },
  unmounted() {
    console.log('unmounted');
  }
}

组合式API

export default {
  // 没有了create的生命周期钩子
  // 由于setup是在before Created和created之前的所以setup代替了他们
  onBeforeMount(() => {
    console.log('onBeforeMount');
  })

  onMounted(() => {
    console.log('onMounted');
  })

  onBeforeUpdate(() => {
    console.log('onBeforeUpdate');
  })

  onUpdated(() => {
    console.log('onUpdated');
  })
  onBeforeUnmount(() => {
    console.log('onBeforeUnmount');
  })

  onUnmounted(() => {
    console.log('onUnmounted');
  })
}

代码

<template>
  <div>
    生命周期钩子(Lifecycle Hooks)
  </div>
</template>
<script>
  import {
    onBeforeMount,
    onBeforeUnmount,
    onBeforeUpdate,
    onMounted,
    onUnmounted,
    onUpdated
  } from 'vue';
  export default {
    name: 'lifeCycleHooks',
    setup() {
      console.log('setup...');
      // 没有了create的生命周期钩子
      // 由于setup是在before Created和created之前的所以setup代替了他们
      onBeforeMount(() => {
        console.log('onBeforeMount');
      })

      onMounted(() => {
        console.log('onMounted');
      })

      onBeforeUpdate(() => {
        console.log('onBeforeUpdate');
      })

      onUpdated(() => {
        console.log('onUpdated');
      })
      onBeforeUnmount(() => {
        console.log('onBeforeUnmount');
      })

      onUnmounted(() => {
        console.log('onUnmounted');
      })
      return {}
    },

    // 在vue3中,当生命周期钩子函数有两种写法
    // 第一种写法:选项式API
    // 第二种写法:组合式API
    beforeCreate() {
      console.log('beforeCreate');
    },
    created() {
      console.log('created');
    },
    beforeMount() {
      console.log('beforeMount');
    },
    mounted() {
      console.log('mounted');
    },
    beforeUpdate() {
      console.log('beforeUpdate');
    },
    update() {
      console.log('update');
    },
    beforeUnmount() {
      console.log('beforeUnmount');
    },
    unmounted() {
      console.log('unmounted');
    }
  }
</script>
涉及内容

vue3、生命周期钩子

Vue 3中,`keep-alive`组件具有两个新增的生命周期钩子函数:`activated`和`deactivated`。当组件被缓存并重新激活时,`activated`函数会被调用;当组件被缓存并离开时,`deactivated`函数会被调用。这两个钩子函数允许我们在组件被缓存和激活/离开时执行相应的逻辑操作。除了新增的生命周期钩子函数,`keep-alive`组件仍然会遵循普通的Vue组件的生命周期顺序,例如`created`、`mounted`、`updated`和`destroyed`等。所以在使用`keep-alive`组件时,可以根据需要在这些生命周期函数中进行相应的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Vue生命周期(keep-alive缓存特殊activated(组件激活时)、deactivated(组件停用时))、父子组件的执行顺序](https://blog.csdn.net/muzidigbig/article/details/112696398)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Vue缓存路由(keep-alive)以及新的生命周期](https://blog.csdn.net/code_dream_wq/article/details/128713825)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值