1. 程式人生 > >vue 父元件傳值給子元件遇到的生命週期問題

vue 父元件傳值給子元件遇到的生命週期問題

專案遇到父元件傳值給子元件,子元件監聽資料變化可以用watch監聽資料變化


如果要在子元件列印父元件傳來的資料必須是在beforeUpdate和updated生命週期才能監聽的到,

元件生命週期順序如下:

Vue所有的生命週期鉤子自動繫結在this上下文到例項中,因此你可以訪問資料,對屬性和方法進行運算。這意味著你不能使用箭頭函式來定義一個生命週期方法。這是因為箭頭函式綁定了父上下文,因此this與你期待的Vue例項不同。
1、beforeCreate
  在例項初始化之後,資料觀測和event/watcher時間配置之前被呼叫。
2、created
  例項已經建立完成之後被呼叫。在這一步,例項已經完成以下的配置:資料觀測,屬性和方法的運算,watch/event事件回撥。然而,掛載階段還沒開始,$el屬性目前不可見。
3、beforeMount
  在掛載開始之前被呼叫:相關的render函式首次被呼叫。
  該鉤子在伺服器端渲染期間不被呼叫。
4、mounted
  el被新建立的vm.$el替換,並掛在到例項上去之後呼叫該鉤子函式。如果root例項掛載了一個文件內元素,當mounted被呼叫時vm.$el也在文件內。
  該鉤子在服務端渲染期間不被呼叫。
5、beforeUpdate
  資料更新時呼叫,發生在虛擬DOM重新渲染和打補丁之前。
  你可以在這個鉤子中進一步第更改狀態,這不會觸發附加的重渲染過程。
  該鉤子在服務端渲染期間不被呼叫。
6、updated
  由於資料更改導致的虛擬DOM重新渲染和打補丁,在這之後會呼叫該鉤子。
  當這個鉤子被呼叫時,元件DOM已經更新,所以你現在可以執行依賴於DOM的操作。然而在大多數情況下,你應該避免在此期間更改狀態,因為這可能會導致更新無限迴圈。
  該鉤子在服務端渲染期間不被呼叫。
7、activated
  keep-alive元件啟用時呼叫。
  該鉤子在伺服器端渲染期間不被呼叫。
8、deactivated
  keep-alive元件停用時呼叫。
  該鉤子在服務端渲染期間不被呼叫。
9、beforeDestroy 【類似於React生命週期的componentWillUnmount】
  例項銷燬之間呼叫。在這一步,例項仍然完全可用。
  該鉤子在服務端渲染期間不被呼叫。
10、destroyed
  Vue例項銷燬後呼叫。呼叫後,Vue例項指示的所有東西都會解繫結,所有的事件監聽器會被移除,所有的子例項也會被銷燬。

  該鉤子在服務端渲染不會被呼叫。

附上一張生命週期圖