Vue3生命周期鉤子函數(shù)詳解
本文實(shí)例為大家分享了Vue3生命周期鉤子函數(shù)的具體代碼,供大家參考,具體內(nèi)容如下
一、Vue3生命周期鉤子
setup() : 開始創(chuàng)建組件之前,在 beforeCreate 和 created 之前執(zhí)行,創(chuàng)建的是 data 和 method
onBeforeMount() : 組件掛載到節(jié)點(diǎn)上之前執(zhí)行的函數(shù);
onMounted() : 組件掛載完成后執(zhí)行的函數(shù);
onBeforeUpdate(): 組件更新之前執(zhí)行的函數(shù);
onUpdated(): 組件更新完成之后執(zhí)行的函數(shù);
onBeforeUnmount(): 組件卸載之前執(zhí)行的函數(shù);
onUnmounted(): 組件卸載完成后執(zhí)行的函數(shù);
onActivated(): 被包含在 <keep-alive> 中的組件,會(huì)多出兩個(gè)生命周期鉤子函數(shù),被激活時(shí)執(zhí)行;
onDeactivated(): 比如從 A 組件,切換到 B 組件,A 組件消失時(shí)執(zhí)行;
onErrorCaptured(): 當(dāng)捕獲一個(gè)來(lái)自子孫組件的異常時(shí)激活鉤子函數(shù)。
PS: 使用<keep-alive> 組件會(huì)將數(shù)據(jù)保留在內(nèi)存中,比如我們不想每次看到一個(gè)頁(yè)面都重新加載數(shù)據(jù),就可以使用<keep-alive> 組件解決。
二、Vue2.x 和 Vue3.x 生命周期對(duì)比

三、Vue3生命周期鉤子函數(shù)的簡(jiǎn)單使用
<template>
? <div>
? ? <h1>Vue3生命周期鉤子函數(shù)</h1>
? ? <h2>響應(yīng)式攔截?cái)?shù)據(jù)data的值是:{{msg}}</h2>
? ? <p><button @click="changeMsg">點(diǎn)擊改變msg</button></p>
? </div>
</template>
<script>
import { reactive, onUnmounted, onUpdated, onMounted, toRefs } from 'vue'; // 引入需要的
export default {
? setup () {
? ? // 初始化項(xiàng)目工作都放在setup中
? ? console.log("當(dāng)前應(yīng)用程序被安裝了");
? ? const state = reactive({ // 定義狀態(tài)
? ? ? msg: '學(xué)而時(shí)習(xí)之', // 定義變量
? ? ? changeMsg: () => { // 定義方法
? ? ? ? state.msg = '不亦說(shuō)乎'
? ? ? }
? ? })
? ? let timer = 0;
? ? let count = 0;
? ? onMounted(() => {
? ? ? console.log('頁(yè)面掛載完成,觸發(fā)了onMounted鉤子函數(shù)');
? ? ? timer = setInterval(() => {
? ? ? ? console.log('定時(shí)器正在運(yùn)行中', count++)
? ? ? }, 1000)
? ? })
? ? onUpdated(() => {
? ? ? console.log('數(shù)據(jù)發(fā)生了更新,觸發(fā)了onUpdated鉤子函數(shù)')
? ? })
? ? onUnmounted(() => {
? ? ? console.log('頁(yè)面/組件退出,觸發(fā)了onUnmounted鉤子函數(shù)')
? ? ? // 如果不清楚,這些異步的行為就會(huì)常駐在內(nèi)存中,一定程度上會(huì)造成常駐內(nèi)存的不必要消耗,造成內(nèi)存泄露
? ? ? clearInterval(timer);
? ? })
? ? return {
? ? ? ...toRefs(state)
? ? }
? }
}
</script>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue $nextTick實(shí)現(xiàn)原理深入詳解
這篇文章主要介紹了vue $nextTick實(shí)現(xiàn)原理深入詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
vue組件之間通信實(shí)例總結(jié)(點(diǎn)贊功能)
這篇文章主要介紹了vue組件之間通信,結(jié)合實(shí)例形式分析了vue父子組件、兄弟組件之間通信的原理、實(shí)現(xiàn)方法,并給出了一個(gè)類似點(diǎn)贊功能的總結(jié)實(shí)例,需要的朋友可以參考下2018-12-12
Vue @click.stop阻止事件向祖先元素傳遞方式(事件冒泡)
在Vue中,使用@click.stop修飾符可以阻止事件向父級(jí)元素傳遞,從而實(shí)現(xiàn)單擊父級(jí)元素執(zhí)行函數(shù),而單擊子元素不執(zhí)行函數(shù)的需求2025-02-02
vue項(xiàng)目實(shí)現(xiàn)搜索內(nèi)容變紅色顯示
這篇文章主要為大家介紹了vue項(xiàng)目實(shí)現(xiàn)搜索內(nèi)容變紅色顯示,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
elementui之el-tebs瀏覽器卡死的問(wèn)題和使用報(bào)錯(cuò)未注冊(cè)問(wèn)題
這篇文章主要介紹了elementui之el-tebs瀏覽器卡死的問(wèn)題和使用報(bào)錯(cuò)未注冊(cè)問(wèn)題2019-07-07
詳解vue-cli 構(gòu)建Vue項(xiàng)目遇到的坑
本篇文章主要介紹了詳解vue-cli 構(gòu)建Vue項(xiàng)目遇到的坑,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
vue基礎(chǔ)之模板和過(guò)濾器用法實(shí)例分析
這篇文章主要介紹了vue基礎(chǔ)之模板和過(guò)濾器用法,結(jié)合實(shí)例形式分析了vue模板與過(guò)濾器的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-03-03
關(guān)于el-table-column的formatter的使用及說(shuō)明
這篇文章主要介紹了關(guān)于el-table-column的formatter的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10

