亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue生命周期實例分析總結(jié)

 更新時間:2022年10月03日 11:27:11   作者:月光曬了很涼快  
Vue的生命周期就是vue實例從創(chuàng)建到銷毀的全過程,也就是new Vue()開始就是vue生命周期的開始。Vue實例有?個完整的?命周期,也就是從開始創(chuàng)建、初始化數(shù)據(jù)、編譯模版、掛載Dom->渲染、更新->渲染、卸載等?系列過程,稱這是Vue的?命周期

1. 概述

每個 Vue 實例在被創(chuàng)建之前都要經(jīng)過一系列的初始化過程。例如需要設(shè)置數(shù)據(jù)監(jiān)聽、編譯模板、掛載實例到 DOM、在數(shù)據(jù)變化時更新 DOM 等。同時在這個過程中也會運(yùn)行一些叫做生命周期鉤子的函數(shù),給予用戶機(jī)會在一些特定的場景下添加他們自己的代碼。

簡單來說,生命周期鉤子函數(shù)就是一堆回調(diào)函數(shù),在我們創(chuàng)建實例時,這些回調(diào)函數(shù)按順序執(zhí)行。

2. 頁面鉤子函數(shù)

名稱作用
beforeCreate在實例初始化之后,數(shù)據(jù)觀測和事件配置之前被調(diào)用。此時 data 和 methods 以及頁面的DOM結(jié)構(gòu)都沒有初始化,什么都做不了,執(zhí)行1次
created在實例創(chuàng)建完成后被立即調(diào)用,此時data 和 methods 已經(jīng)可以使用,但是頁面還沒有渲染出來,執(zhí)行1次,用this對象
beforeMount在掛載開始之前被調(diào)用,此時頁面上還看不到真實數(shù)據(jù),只是一個模板頁面而已,執(zhí)行1次
mountedel被新創(chuàng)建的vm.$el替換,并掛載到實例上去之后調(diào)用該鉤子。 數(shù)據(jù)已經(jīng)真實渲染到頁面上 在這個鉤子函數(shù)里面,可以進(jìn)行數(shù)據(jù)請求等,執(zhí)行1次
beforeUpdate數(shù)據(jù)更新時調(diào)用,頁面上數(shù)據(jù)還是舊的 n次
updated由于數(shù)據(jù)更新完畢,頁面上數(shù)據(jù)已經(jīng)替換成最新的 n次
beforeDestroy實例銷毀之前調(diào)用,執(zhí)行1次
destroyed實例銷毀后調(diào)用,執(zhí)行1次
activatedkeep-alive 組件激活時調(diào)用
deactivatedkeep-alive 組件停用時調(diào)用
errorCaptured當(dāng)捕獲一個來自子孫組件的錯誤時被調(diào)用

3. 生命周期函數(shù)

下面我們用代碼實現(xiàn)以下生命周期函數(shù)的執(zhí)行順序:

<div id="app">
    <input type="text" v-model="username">
</div>
<script>
    const vm = new Vue({
        el: '#app',
        data: {
            username: ''
        },
        // 初始化階段生命周期  -- 它只都只執(zhí)行1次
        beforeCreate() {
            console.log('beforeCreate');
        },
        created() {
            console.log('created');
        },
        beforeMount() {
            console.log('beforeMount');
        },
        mounted() {
            console.log('mounted');
            setTimeout(() => {
                // 銷毀
                this.$destroy()
            }, 2000);
            this.timer = setInterval(() => {
                console.log(111);
            }, 1000);
        },
        // 更新階段生命周期,它們會執(zhí)行N次
        beforeUpdate() {
            console.log('beforeUpdate');
        },
        updated() {
            console.log('updated');
        },
        // 銷毀階段  只執(zhí)行1次
        beforeDestroy() {
            clearInterval(this.timer)
            console.log('beforeDestroy');
        },
        destroyed() {
            console.log('destroyed');
        }
    })
</script>

到此這篇關(guān)于Vue生命周期實例分析總結(jié)的文章就介紹到這了,更多相關(guān)Vue生命周期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論