最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3生命周期原理與生命周期函數(shù)簡(jiǎn)單應(yīng)用實(shí)例分析 原創(chuàng)

原創(chuàng)  更新時(shí)間:2023年04月21日 09:23:39   原創(chuàng) 投稿:shichen2014  
這篇文章主要介紹了vue3生命周期原理與生命周期函數(shù),結(jié)合簡(jiǎn)單實(shí)例形式分析了vue3的生命周期基本原理、以及各個(gè)階段的生命周期鉤子函數(shù)功能、使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下

原理概述

Vue 3的生命周期(Lifecycle)指的是組件從創(chuàng)建到銷毀經(jīng)歷的一系列事件,在這些事件中可以執(zhí)行一些操作,例如初始化數(shù)據(jù)、渲染視圖、加載異步數(shù)據(jù)等。在Vue 3中,通過setup()函數(shù)來定義組件的生命周期。

實(shí)例分析

Vue 3的生命周期包含了以下幾個(gè)階段:

1. beforeCreate

在實(shí)例創(chuàng)建之前,即在初始化之前被調(diào)用。此時(shí),尚未初始化組件實(shí)例,無法訪問data、methods和computed等屬性,在組件狀態(tài)初始化之前執(zhí)行一些操作。

export default {
  beforeCreate() {
    console.log('beforeCreate');
  }
}

2. created

在實(shí)例創(chuàng)建之后,即在初始化之后被調(diào)用。此時(shí),已經(jīng)完成了數(shù)據(jù)觀測(cè)等配置,但尚未掛載DOM,并且可以訪問data、methods和computed等屬性。可以使用created鉤子函數(shù)進(jìn)行數(shù)據(jù)初始化和事件的監(jiān)聽等操作。

import { onMounted, onUnmounted } from 'vue';

export default {
  data() {
    return {
      count: 0
    };
  },
  created() {
    console.log('created');
  },
  mounted() {
    onMounted(() => {
      console.log('component mounted');
    });
  },
  unmounted() {
    onUnmounted(() => {
      console.log('component unmounted');
    });
  }
}

3. beforeMount

在掛載開始之前被調(diào)用。在此階段中,尚未渲染真實(shí)的DOM節(jié)點(diǎn)。可以使用beforeMount鉤子函數(shù),在組件掛載之前進(jìn)行一些異步操作,例如加載動(dòng)畫等。

export default {
  beforeMount() {
    console.log('beforeMount');
  }
}

4. mounted

在掛載結(jié)束后被調(diào)用。此時(shí),組件已經(jīng)渲染出真實(shí)的DOM。mounted鉤子函數(shù)往往用于初始化DOM操作以及與服務(wù)器交互后填充組件的數(shù)據(jù),例如通過ref獲取DOM節(jié)點(diǎn)和注冊(cè)事件監(jiān)聽器等。

export default {
  mounted() {
    console.log('mounted');
    const button = this.$refs.myButton;
    button.addEventListener('click', () => {
      this.count++;
    });
  }
}

5. beforeUpdate

在數(shù)據(jù)更新之前被調(diào)用。此時(shí),可以在更新之前訪問舊的數(shù)據(jù)狀態(tài)??梢允褂胋eforeUpdate鉤子函數(shù),在組件數(shù)據(jù)更新之前執(zhí)行一些操作,例如動(dòng)態(tài)綁定class和style等。

export default {
  beforeUpdate() {
    console.log('beforeUpdate');
  }
}

6. updated

在數(shù)據(jù)更新之后被調(diào)用。此時(shí),組件已經(jīng)更新DOM,可以通過訪問最新的數(shù)據(jù)狀態(tài)來完成DOM的操作??梢允褂胾pdated鉤子函數(shù),在組件數(shù)據(jù)更新之后執(zhí)行一些操作,例如觸發(fā)動(dòng)畫效果等。

export default {
  updated() {
    console.log('updated');
  }
}

7. beforeUnmount

在組件卸載之前被調(diào)用。此時(shí),組件實(shí)例仍然完全可用,但是它的視圖已經(jīng)被銷毀并且不再更新。可以使用beforeUnmount鉤子函數(shù),在組件卸載之前執(zhí)行一些清理操作,例如取消事件監(jiān)聽器、定時(shí)器和異步請(qǐng)求等。

export default {
  beforeUnmount() {
    console.log('beforeUnmount');
  }
}

8. unmounted

在組件卸載之后被調(diào)用。此時(shí),組件實(shí)例以及其所有相關(guān)聯(lián)的DOM元素均已銷毀,無法再訪問組件內(nèi)部數(shù)據(jù)和方法??梢允褂胾nmounted鉤子函數(shù),在組件卸載之后執(zhí)行一些最終清理操作。

export default {
  unmounted() {
    console.log('unmounted');
  }
}

需要注意的是,Vue 3中去掉了一些生命周期函數(shù),例如activated、deactivated和errorCaptured等,這些可以通過新的Composition API來實(shí)現(xiàn)。

總之,在Vue 3的開發(fā)中,生命周期一直是非常重要的概念之一,需要將鉤子函數(shù)應(yīng)用到合適的場(chǎng)景中,以充分利用Vue 3提供的生命周期機(jī)制來優(yōu)化組件的性能和行為。合理地利用生命周期可以提高組件的代碼質(zhì)量和運(yùn)行效率。

相關(guān)文章

  • Vue中watch監(jiān)聽首次不生效的解決辦法

    Vue中watch監(jiān)聽首次不生效的解決辦法

    在 Vue 中,watch 屬性用于觀察和響應(yīng) Vue 實(shí)例上數(shù)據(jù)的變動(dòng),然而,默認(rèn)情況下,watch 確實(shí)不會(huì)觸發(fā)組件創(chuàng)建時(shí)的變動(dòng),這里有幾種方式可以處理或繞過這個(gè)問題,需要的朋友可以參考下
    2024-09-09
  • Vue中router-link如何添加mouseover提示

    Vue中router-link如何添加mouseover提示

    這篇文章主要介紹了Vue中router-link如何添加mouseover提示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 詳解van-cell如何使用插槽

    詳解van-cell如何使用插槽

    這篇文章主要為大家介紹了van-cell如何使用插槽詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • VUE?Element修改el-input和el-select長(zhǎng)度的具體步驟

    VUE?Element修改el-input和el-select長(zhǎng)度的具體步驟

    這篇文章主要給大家介紹了關(guān)于VUE?Element修改el-input和el-select長(zhǎng)度的具體步驟,文中通過代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-12-12
  • vue中defineProperty和Proxy的區(qū)別詳解

    vue中defineProperty和Proxy的區(qū)別詳解

    這篇文章主要介紹了vue中defineProperty和Proxy的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • vue中beforeRouteLeave實(shí)現(xiàn)頁(yè)面回退不刷新的示例代碼

    vue中beforeRouteLeave實(shí)現(xiàn)頁(yè)面回退不刷新的示例代碼

    這篇文章主要介紹了vue中beforeRouteLeave實(shí)現(xiàn)頁(yè)面回退不刷新的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • vue+swiper實(shí)現(xiàn)時(shí)間軸效果

    vue+swiper實(shí)現(xiàn)時(shí)間軸效果

    這篇文章主要為大家詳細(xì)介紹了vue+swiper實(shí)現(xiàn)時(shí)間軸效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 用v-html解決Vue.js渲染中html標(biāo)簽不被解析的問題

    用v-html解決Vue.js渲染中html標(biāo)簽不被解析的問題

    這篇文章主要給大家介紹了如何利用v-html解決Vue.js渲染過程中html標(biāo)簽不能被解析,html標(biāo)簽顯示為字符串的問題,文中通過圖文介紹的很詳細(xì),有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • Vue + better-scroll 實(shí)現(xiàn)移動(dòng)端字母索引導(dǎo)航功能

    Vue + better-scroll 實(shí)現(xiàn)移動(dòng)端字母索引導(dǎo)航功能

    better-scroll 是一款重點(diǎn)解決移動(dòng)端(已支持 PC)各種滾動(dòng)場(chǎng)景需求的插件。這篇文章主要介紹了Vue + better-scroll 實(shí)現(xiàn)移動(dòng)端字母索引導(dǎo)航功能,需要的朋友可以參考下
    2018-05-05
  • 關(guān)于vue?src路徑動(dòng)態(tài)拼接的小知識(shí)

    關(guān)于vue?src路徑動(dòng)態(tài)拼接的小知識(shí)

    這篇文章主要介紹了vue?src路徑動(dòng)態(tài)拼接的小知識(shí),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2022-04-04

最新評(píng)論

贵德县| 文安县| 育儿| 紫金县| 赣榆县| 芮城县| 大渡口区| 青冈县| 绥棱县| 赣榆县| 塔河县| 本溪市| 皋兰县| 涿州市| 汉源县| 林甸县| 长治市| 乡城县| 鞍山市| 肇源县| 疏附县| 定陶县| 绥芬河市| 榆社县| 信宜市| 莎车县| 万全县| 招远市| 乡宁县| 河曲县| 东明县| 横峰县| 汉阴县| 日土县| 洛川县| 大田县| 麻城市| 秦安县| 南召县| 绍兴市| 河东区|