欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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等屬性??梢允褂胏reated鉤子函數(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)??梢允褂胋eforeMount鉤子函數(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)被銷毀并且不再更新??梢允褂胋eforeUnmount鉤子函數(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在Tomcat8下部署頁(yè)面不加載的問題

    解決Vue在Tomcat8下部署頁(yè)面不加載的問題

    今天小編就為大家分享一篇解決Vue在Tomcat8下部署頁(yè)面不加載的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue項(xiàng)目打包部署全過程(history模式)

    Vue項(xiàng)目打包部署全過程(history模式)

    vue項(xiàng)目中我們比較常用的模式為hash和history模式,下面這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目打包部署的全過程,講解的是vue-router中history模式的部署,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • 通過命令行創(chuàng)建vue項(xiàng)目的方法

    通過命令行創(chuàng)建vue項(xiàng)目的方法

    這篇文章主要介紹了通過命令創(chuàng)建vue項(xiàng)目的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • 使用Vue.js和Element-UI做一個(gè)簡(jiǎn)單登錄頁(yè)面的實(shí)例

    使用Vue.js和Element-UI做一個(gè)簡(jiǎn)單登錄頁(yè)面的實(shí)例

    下面小編就為大家分享一篇使用Vue.js和Element-UI做一個(gè)簡(jiǎn)單登錄頁(yè)面的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • vue配置多頁(yè)面的實(shí)現(xiàn)方法

    vue配置多頁(yè)面的實(shí)現(xiàn)方法

    本篇文章主要介紹了vue配置多頁(yè)面的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • vue 中幾種傳值方法(3種)

    vue 中幾種傳值方法(3種)

    這篇文章主要介紹了vue 中幾種傳值方法(3種),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 關(guān)于vuex更新視圖引發(fā)的一些思考詳析

    關(guān)于vuex更新視圖引發(fā)的一些思考詳析

    我們?cè)趘uex中操作數(shù)據(jù)時(shí)遇見視圖不更新的情況,下面這篇文章主要給大家介紹了關(guān)于vuex更新視圖引發(fā)的一些思考,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • vue獲取token實(shí)現(xiàn)token登錄的示例代碼

    vue獲取token實(shí)現(xiàn)token登錄的示例代碼

    最近新做了個(gè)vue項(xiàng)目,正好項(xiàng)目中有登錄部分,本文就詳細(xì)的介紹一下登錄部分的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),感興趣的小伙伴們可以參考一下
    2021-11-11
  • 解決vuejs項(xiàng)目里css引用背景圖片不能顯示的問題

    解決vuejs項(xiàng)目里css引用背景圖片不能顯示的問題

    今天小編就為大家分享一篇解決vuejs項(xiàng)目里css引用背景圖片不能顯示的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue實(shí)現(xiàn)頁(yè)面緩存功能

    vue實(shí)現(xiàn)頁(yè)面緩存功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)頁(yè)面緩存功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評(píng)論