Vue生命週期(中文版本)

1、整理的Vue生命週期中文圖

生命週期的中文圖解

2、我的理解的Vue生命週期

1.看中文簡介版本須要對照下面給的代碼,根據註解和代碼去對應

2.首先要知道,綁定渲染的dom不止有el中綁定形式,還有實例對象調用$mount

3.綁定後會接着往下找看有沒有template 設置,有和沒有會執行兩種,也就是說
有template 就只會渲染template中的內容,而且覆蓋掉el中的內容

4.可是即便向第三條那樣使用template,el會被覆蓋,也必須寫el,可是能夠不用
再裏面寫操做,緣由是聲明週期先找el,在根據渲染el 和template在選擇

5.template 只能有一個根元素,想多個就給有if 或者show 弄成單個顯示

6.beforeCreate、created、beforeMount、mounted 他們四個是建立生命週期一
條龍,後續當咱們去改變數據,這些聲明週期都不會在執行,除非刷新頁面從新
讓生命週期繼續;

7.而改變值讓頁面跟着一塊兒變化的是beforeUpdate 、updated他倆在虛擬dom
中,改變就觸發,但最好不用,由於有watch 和計算屬性均可以作到,因此這個
生命週期中通常不作操做

8.這裏要最重要的說明beforeUpdate 、updated第一次刷新頁面的生命週期不執
行。只有數據更新虛擬dom監聽到才執行

3、對照理解代碼

1.打上斷點更方便理解
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.22/dist/vue.js"></script>

</head>

<body>
<div id="app">
    <button @click="dom">增長dom</button>
    <p v-for="i,index in list" ref="plist">{{i}}</p>
    <p ref="pHtml">我好</p>

    <!--<template id="ss">-->
        <!--template 渲染區域-->
    <!--</template>-->
</div>

<script>

    // 建立 Vue 實例,獲得 ViewModel
    // vm.$mount('#app') 不經常使用,通常用el
    var vm = new Vue({
        el: '#app',
        // template:'#ss', template 渲染
        data: {
            list: ['as', 'bs', 'cs'],
        },
        methods:{
          dom(){
            this.list.push('ds');
          },
        },
        beforeCreate(){
            debugger;
        },

        created(){
            debugger;

        },

        beforeMount(){
            debugger;
        },

        mounted(){
            debugger;
        },


        beforeUpdate(){
            debugger;
        },

        updated(){
            debugger;

        },

        beforeDestroy(){
            debugger;

        },

        destroyed(){
            debugger;
        }

    });
    
</script>
</body>

</html>
相關文章
相關標籤/搜索