2-10 vue生命周期

vue生命周期

Vue實例的生命周期

就像一個人煎娇,從出生到死亡會經(jīng)歷童年二庵、少年、青年缓呛、中年催享、老年各個階段。如果你是上帝哟绊,你可以讓他童年做著無憂無慮的事情因妙、少年用功讀書、青年到處游學(xué)票髓、中年娶妻生子攀涵、老年兒孫滿堂。

Vue.js讓你有了上帝之手洽沟,可以操縱Vue實例的整個生命周期以故。

一、生命周期

  • 每個 Vue 實例在被創(chuàng)建之前都要經(jīng)過一系列的初始化過程裆操。

  • 例如怒详,實例需要:

    • 配置數(shù)據(jù)觀測(data observer)
    • 編譯模版、掛載實例到 DOM
    • 在數(shù)據(jù)變化時更新 DOM
  • 在這個過程中跷车,實例也會調(diào)用一些生命周期鉤子 棘利,這就給我們提供了執(zhí)行自定義邏輯的機(jī)會。比如朽缴,created 這個鉤子在實例被創(chuàng)建之后被調(diào)用:

    var vm = new Vue({
      data: {
        a: 1
      },
      created: function () {
        // `this` 指向 vm 實例
        console.log('a is: ' + this.a)
      }
    })
    // -> "a is: 1"
    
  • 也有一些其它的鉤子,在實例生命周期的不同階段調(diào)用水援,如 mounted密强、 updated 、destroyed 蜗元。鉤子的 this 指向調(diào)用它的 Vue 實例或渤。


二、Vue1.0-實例生命周期圖示

vue1.0生命周期.png
  • 生命周期中鉤子函數(shù)介紹:
       beforeCreate: function () {
            // 在實例初始化之后奕扣,數(shù)據(jù)觀測(data observer)
               和 event/watcher 事件配置之前被調(diào)用薪鹦。
        },
        created: function () {
            // 實例已經(jīng)創(chuàng)建完成之后被調(diào)用。
               在這一步惯豆,實例已完成以下的配置:數(shù)據(jù)觀測(data observer)池磁,
               屬性和方法的運(yùn)算, watch/event 事件回調(diào)楷兽。
               然而地熄,掛載階段還沒開始,$el 屬性目前不可見芯杀。
        },
        beforeCreate: function () {
            // 在實例初始化之后端考,數(shù)據(jù)觀測(data observer) 和 event/watcher
               事件配置之前被調(diào)用雅潭。
        },
        mounted: function () {
            // el 被新創(chuàng)建的 vm.$el 替換,并掛載到實例上去之后調(diào)用該鉤子却特。
              如果 root 實例掛載了一個文檔內(nèi)元素扶供,當(dāng) mounted 被調(diào)用時
              vm.$el 也在文檔內(nèi)。
        },
        beforeUpdate: function () {
            // 數(shù)據(jù)更新時調(diào)用裂明,發(fā)生在虛擬 DOM 重新渲染和打補(bǔ)丁之前诚欠。
            // 你可以在這個鉤子中進(jìn)一步地更改狀態(tài),這不會觸發(fā)附加的重渲染過程漾岳。
        },
        update: function () {
            // 由于數(shù)據(jù)更改導(dǎo)致的虛擬 DOM 重新渲染和打補(bǔ)丁轰绵,在這之后會調(diào)用該鉤子。
            // 當(dāng)這個鉤子被調(diào)用時尼荆,組件 DOM 已經(jīng)更新左腔,
               所以你現(xiàn)在可以執(zhí)行依賴于 DOM 的操作。然而在大多數(shù)情況下捅儒,
               你應(yīng)該避免在此期間更改狀態(tài)液样,因為這可能會導(dǎo)致更新無限循環(huán)。
        },

        // <keep-alive> 包裹動態(tài)組件時巧还,會緩存不活動的組件實例鞭莽,而不是銷毀它們。
        activated: function () {
            // keep-alive 組件激活時調(diào)用麸祷。
        },
        deactivated: function () {
            // keep-alive 組件停用時調(diào)用澎怒。
        },

        beforeDestroy: function () {
            // 實例銷毀之前調(diào)用。在這一步阶牍,實例仍然完全可用喷面。
        },
        destroyed: function () {
            // Vue 實例銷毀后調(diào)用。調(diào)用后走孽,Vue 實例指示的所有東西都會解綁定惧辈,
               所有的事件監(jiān)聽器會被移除,所有的子實例也會被銷毀磕瓷。
        }
  • 上圖中比較常用的鉤子:

created:vue實例被生成后的一個生命周期鉤子函數(shù)盒齿。(頁面初始化數(shù)據(jù)加載一般寫這里);

beforeCreate:給個loading界面 created撤銷loading;

beforeDestory:當(dāng)移除當(dāng)前組件的時候調(diào)用

destoryed:當(dāng)前組件已被刪除,清空相關(guān)內(nèi)容

mounted : 在這發(fā)起后端請求困食,拿回數(shù)據(jù)边翁,配合路由鉤子做一些事情

<script>

    window.onload = function () {

        var vm=new Vue({
            el:'body',
            data:{
                msg:'well'
            },

            created:function(){
                alert('實例已經(jīng)創(chuàng)建');
            },
            beforeCompile:function(){
                alert('編譯之前');
            },
            compiled:function(){
                alert('編譯之后');
            },
            ready:function(){
                alert('插入到文檔中');
            },
            beforeDestroy:function(){
                alert('銷毀之前');
            },
            destroyed:function(){
                alert('銷毀之后');
            }
        });

        /*點擊頁面銷毀vue對象*/
        document.onclick=function(){
            vm.$destroy();
        };
    }

</script>

三、Vue2.0-實例生命周期圖示

vue2.0生命周期.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末陷舅,一起剝皮案震驚了整個濱河市倒彰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌莱睁,老刑警劉巖待讳,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芒澜,死亡現(xiàn)場離奇詭異,居然都是意外死亡创淡,警方通過查閱死者的電腦和手機(jī)痴晦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琳彩,“玉大人誊酌,你說我怎么就攤上這事÷斗Γ” “怎么了碧浊?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瘟仿。 經(jīng)常有香客問我箱锐,道長,這世上最難降的妖魔是什么劳较? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任驹止,我火速辦了婚禮,結(jié)果婚禮上观蜗,老公的妹妹穿的比我還像新娘臊恋。我一直安慰自己,他們只是感情好墓捻,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布抖仅。 她就那樣靜靜地躺著,像睡著了一般毙替。 火紅的嫁衣襯著肌膚如雪岸售。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天厂画,我揣著相機(jī)與錄音,去河邊找鬼拷邢。 笑死袱院,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瞭稼。 我是一名探鬼主播忽洛,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼环肘!你這毒婦竟也來了欲虚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤悔雹,失蹤者是張志新(化名)和其女友劉穎复哆,沒想到半個月后欣喧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梯找,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年唆阿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锈锤。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡驯鳖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出久免,到底是詐尸還是另有隱情浅辙,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布阎姥,位于F島的核電站记舆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏丁寄。R本人自食惡果不足惜氨淌,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望伊磺。 院中可真熱鬧盛正,春花似錦、人聲如沸屑埋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摘能。三九已至续崖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間团搞,已是汗流浹背严望。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留逻恐,地道東北人像吻。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像复隆,于是被迫代替她去往敵國和親拨匆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容