Vue學習筆記之五Vue生命周期

5. Vue生命周期

所有的生命周期鉤子自動綁定 this 上下文到實例中,因此你可以訪問數(shù)據(jù)隔躲,對屬性和方法進行運算。這意味著你不能使用箭頭函數(shù)來定義一個生命周期方法 (例如 created: () => this.fetchTodos())。這是因為箭頭函數(shù)綁定了父上下文坊秸,因此 this 與你期待的 Vue 實例不同,this.fetchTodos 的行為未定義澎怒。

5.1 生命周期圖示

Vue ??????????????¨???

5.2 生命周期方法

beforeCreate

  • 類型Function

  • 詳細

    在實例初始化之后褒搔,數(shù)據(jù)觀測 (data observer) 和 event/watcher 事件配置之前被調用。

created

  • 類型Function

  • 詳細

    在實例創(chuàng)建完成后被立即調用喷面。在這一步星瘾,實例已完成以下的配置:數(shù)據(jù)觀測 (data observer),屬性和方法的運算惧辈,watch/event 事件回調琳状。然而,掛載階段還沒開始盒齿,$el 屬性目前不可見念逞。

beforeMount

  • 類型Function

  • 詳細

    在掛載開始之前被調用:相關的 render 函數(shù)首次被調用困食。

    該鉤子在服務器端渲染期間不被調用。

mounted

  • 類型Function

  • 詳細

    el 被新創(chuàng)建的 vm.$el 替換肮柜,并掛載到實例上去之后調用該鉤子陷舅。如果 root 實例掛載了一個文檔內元素,當 mounted 被調用時 vm.$el 也在文檔內审洞。

    注意 mounted 不會承諾所有的子組件也都一起被掛載莱睁。如果你希望等到整個視圖都渲染完畢,可以用 vm.$nextTick 替換掉 mounted

mounted: function () {
  this.$nextTick(function () {
    // Code that will run only after the
    // entire view has been rendered
  })
}

該鉤子在服務器端渲染期間不被調用芒澜。

beforeUpdate

  • 類型Function

  • 詳細

    數(shù)據(jù)更新時調用仰剿,發(fā)生在虛擬 DOM 打補丁之前。這里適合在更新之前訪問現(xiàn)有的 DOM痴晦,比如手動移除已添加的事件監(jiān)聽器南吮。

    該鉤子在服務器端渲染期間不被調用,因為只有初次渲染會在服務端進行誊酌。

updated

  • 類型Function

  • 詳細

    由于數(shù)據(jù)更改導致的虛擬 DOM 重新渲染和打補丁部凑,在這之后會調用該鉤子。

    當這個鉤子被調用時碧浊,組件 DOM 已經更新涂邀,所以你現(xiàn)在可以執(zhí)行依賴于 DOM 的操作。然而在大多數(shù)情況下箱锐,你應該避免在此期間更改狀態(tài)比勉。如果要相應狀態(tài)改變,通常最好使用計算屬性watcher 取而代之驹止。

    注意 updated 不會承諾所有的子組件也都一起被重繪浩聋。如果你希望等到整個視圖都重繪完畢,可以用 vm.$nextTick 替換掉 updated

updated: function () {
  this.$nextTick(function () {
    // Code that will run only after the
    // entire view has been re-rendered
  })
}

activated

beforeDestroy

  • 類型Function

  • 詳細

    實例銷毀之前調用。在這一步抖仅,實例仍然完全可用闸与。

    該鉤子在服務器端渲染期間不被調用。

destroyed

  • 類型Function

  • 詳細

    Vue 實例銷毀后調用岸售。調用后践樱,Vue 實例指示的所有東西都會解綁定,所有的事件監(jiān)聽器會被移除凸丸,所有的子實例也會被銷毀拷邢。

    該鉤子在服務器端渲染期間不被調用。

errorCaptured

2.5.0+ 新增

  • 類型(err: Error, vm: Component, info: string) => ?boolean

  • 詳細

    當捕獲一個來自子孫組件的錯誤時被調用屎慢。此鉤子會收到三個參數(shù):錯誤對象瞭稼、發(fā)生錯誤的組件實例以及一個包含錯誤來源信息的字符串忽洛。此鉤子可以返回 false以阻止該錯誤繼續(xù)向上傳播。

你可以在此鉤子中修改組件的狀態(tài)环肘。因此在模板或渲染函數(shù)中設置其它內容的短路條件非常重要欲虚,它可以防止當一個錯誤被捕獲時該組件進入一個無限的渲染循環(huán)。

錯誤傳播規(guī)則

  • 默認情況下悔雹,如果全局的 config.errorHandler 被定義复哆,所有的錯誤仍會發(fā)送它,因此這些錯誤仍然會向單一的分析服務的地方進行匯報腌零。
  • 如果一個組件的繼承或父級從屬鏈路中存在多個 errorCaptured 鉤子梯找,則它們將會被相同的錯誤逐個喚起。
  • 如果此 errorCaptured 鉤子自身拋出了一個錯誤益涧,則這個新錯誤和原本被捕獲的錯誤都會發(fā)送給全局的 config.errorHandler锈锤。
  • 一個 errorCaptured 鉤子能夠返回 false 以阻止錯誤繼續(xù)向上傳播。本質上是說“這個錯誤已經被搞定了且應該被忽略”闲询。它會阻止其它任何會被這個錯誤喚起的 errorCaptured 鉤子和全局的 config.errorHandler久免。

5.3 如何使用聲明周期方法

new Vue({
    el:'#app',
    data:{
        userList:null
    },
    //Vue對象實例創(chuàng)建成功以后就會自定調用這個方法
    created:function(){
        this.getdata();
    },
    methods:{
        getdata:function(){
            //請求的url
            var url = 'https://www.layui.com/demo/table/user/';
            //利用vue-resource發(fā)出Ajax請求
            this.$http.get(url)//發(fā)出請求
                .then(function(response){//獲取服務器返回的數(shù)據(jù)
                this.userList = response.body;//獲取當前url響應回來的數(shù)據(jù)
            });
        }
    }
})

注意:data中定義的變量只有在created及以后方法才能獲取到。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末扭弧,一起剝皮案震驚了整個濱河市妄壶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌寄狼,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件氨淌,死亡現(xiàn)場離奇詭異泊愧,居然都是意外死亡,警方通過查閱死者的電腦和手機盛正,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門删咱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人豪筝,你說我怎么就攤上這事痰滋。” “怎么了续崖?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵敲街,是天一觀的道長。 經常有香客問我严望,道長多艇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任像吻,我火速辦了婚禮峻黍,結果婚禮上复隆,老公的妹妹穿的比我還像新娘。我一直安慰自己姆涩,他們只是感情好挽拂,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著骨饿,像睡著了一般亏栈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上样刷,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天仑扑,我揣著相機與錄音,去河邊找鬼置鼻。 笑死镇饮,一個胖子當著我的面吹牛,可吹牛的內容都是我干的箕母。 我是一名探鬼主播储藐,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嘶是!你這毒婦竟也來了钙勃?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤聂喇,失蹤者是張志新(化名)和其女友劉穎辖源,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體希太,經...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡克饶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了誊辉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片矾湃。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖堕澄,靈堂內的尸體忽然破棺而出邀跃,到底是詐尸還是另有隱情,我是刑警寧澤蛙紫,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布拍屑,位于F島的核電站,受9級特大地震影響坑傅,放射性物質發(fā)生泄漏丽涩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望矢渊。 院中可真熱鬧继准,春花似錦、人聲如沸矮男。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毡鉴。三九已至崔泵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間猪瞬,已是汗流浹背憎瘸。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留陈瘦,地道東北人幌甘。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像痊项,于是被迫代替她去往敵國和親锅风。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內容