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

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

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

原理概述

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

實例分析

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

1. beforeCreate

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

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

2. created

在實例創(chuàng)建之后,即在初始化之后被調(diào)用。此時,已經(jīng)完成了數(shù)據(jù)觀測等配置,但尚未掛載DOM,并且可以訪問data、methods和computed等屬性??梢允褂胏reated鉤子函數(shù)進行數(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)用。在此階段中,尚未渲染真實的DOM節(jié)點??梢允褂胋eforeMount鉤子函數(shù),在組件掛載之前進行一些異步操作,例如加載動畫等。

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

4. mounted

在掛載結(jié)束后被調(diào)用。此時,組件已經(jīng)渲染出真實的DOM。mounted鉤子函數(shù)往往用于初始化DOM操作以及與服務(wù)器交互后填充組件的數(shù)據(jù),例如通過ref獲取DOM節(jié)點和注冊事件監(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ù)據(jù)狀態(tài)??梢允褂胋eforeUpdate鉤子函數(shù),在組件數(shù)據(jù)更新之前執(zhí)行一些操作,例如動態(tài)綁定class和style等。

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

6. updated

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

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

7. beforeUnmount

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

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

8. unmounted

在組件卸載之后被調(diào)用。此時,組件實例以及其所有相關(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來實現(xiàn)。

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

相關(guān)文章

  • 解決Vue在Tomcat8下部署頁面不加載的問題

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

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

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

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

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

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

    使用Vue.js和Element-UI做一個簡單登錄頁面的實例

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

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

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

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

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

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

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

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

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

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

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

    vue實現(xiàn)頁面緩存功能

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

最新評論