監(jiān)視屬性 watch:
1、當被監(jiān)視的屬性變化時,回調(diào)函數(shù)自動調(diào)用,進行相關(guān)操作。
2、監(jiān)視的屬性必須存在,才能進行監(jiān)視。
3、監(jiān)視的兩種寫法:
? ? (1)new Vue 時傳入watch 配置
? ? (2)通過 vm.$watch 監(jiān)視。
深度監(jiān)視:
? (1)Vue 中的 watch 默認不監(jiān)測對象內(nèi)部值的改變(一層)。
? (2)配置 deep:true 可以監(jiān)測對象內(nèi)部值的改變(多層)。
備注:
? (1)Vue自身可以監(jiān)測對象內(nèi)部值的改變,但 Vue 提供的 watch 默認不可以。
? (2)使用 watch 時根據(jù)數(shù)據(jù)的具體結(jié)構(gòu),決定是否采用深度監(jiān)測。
Computed 和 watch 之間的區(qū)別
1、computed 能完成的功能,watch 都可以完成。
2、watch 能完成的功能,computed 不一定能完成,例如:watch 可以進行異步操作。
兩個重要的小原則:
? 1、所被 Vue 管理的函數(shù),最好寫成普通函數(shù),這樣 this 的指向才是 vm 或 組件實例對象。
? 2、所有不被 Vue 所管理的函數(shù)(定時器的回調(diào)函數(shù)、ajax 的回調(diào)函數(shù)等),最好寫成箭頭函數(shù),這樣 this 的指向才是 vm 或 組件實例對象。