1. 程式人生 > >vue 專案實戰 (生命週期鉤子)

vue 專案實戰 (生命週期鉤子)

開篇先來一張圖

下圖是官方展示的生命週期圖

Vue例項的生命週期鉤子函式(8個)
        1. beforeCreate
              剛 new了一個元件,無法訪問到資料和真實的dom,基本上這個好像不能幹啥
        2. created
              data屬性完成了賦值,可以對資料進行修改但是不會觸發updated,在這裡可以做初始資料的獲取
        3. beforeMount
              render準備要渲染了,函式中虛擬dom已經建立完成,這時候改變資料也不會觸發update,在這裡可以做初始資料的獲取
        4. mounted
              開始render,渲染出真實dom,執行mounted鉤子函式,元件已經出現在頁面中,資料,事件,都DOM都處理好了。這裡你                可以改是進行真實的DOM操作
        5. beforeUpdate
              元件,例項資料更新之前會執行的函式,虛擬DOM會重新構建虛擬DOM,與上一次的虛擬DOM對比後重新渲染。切記不可                  進行資料修改否則會出現死迴圈
        6. updated
              更新完會執行的函式,切記不可進行資料修改否則會出現死迴圈
        7. beforeDestroy
              例項被銷燬之前會執行的函式,做善後的工作,清除計時器,清除非指令繫結的事件等等
        8. destroyed
              例項被銷燬後會執行的函式,也可以做善後工作。

<template>
  <div class="hello"> Hello World!
  </div>
</template>

<script> export default {
  name: "HelloWorld",
  data() { return {
      msg: "Welcome to Your Vue.js App" };
  },
  beforeCreate: function() {
    console.log("data屬性光宣告沒有賦值的時候");
  },
  created: function() {
    console.log("data屬性完成了賦值");
  },
  beforeMount: function() {
    console.log("頁面上的{{name}}還沒有被渲染成真正的資料");
  },
  mounted: function() {
    console.log("頁面上的{{name}}被渲染成真正的資料");
  },
  beforeUpdate: function() {
    console.log(" 資料(data屬性)更新之前會執行的函式");
  },
  updated: function() {
    console.log("資料(data屬性)更新完會執行的函式");
  },
  beforeDestroy: function() {
    console.log("例項被銷燬之前會執行的函式");
  },
  destroyed: function() {
    console.log("例項被銷燬後會執行的函式");
  }
}; </script>

<style scoped>
</style>

onsole這樣一個輸出順序:

大概這樣一個 生命週期鉤子函式執行的順序,包括我之前是用angular開發跟vue一樣 他也有自己的生命週期鉤子函式。

生命週期簡單來說就是一個元件從建立到初始化到銷燬的一個過程,在這個過程中有這些生命週期鉤子函式我們可以更方便的去操作整一個元件。
如果你覺得不錯,或者發現文章中的錯誤,或者有更好的建議,歡迎評論或進前端全棧群:866109386,來交流討論吹水
出處:https://www.cnblogs.com/huangenai/p/9700517.html