爲什麼會出現vue修改數據後頁面沒有刷新的問題?
- 受ES5的限制,Vue不能檢測對象的屬性的添加和刪除
- Vue.js 在初始化實例時將屬性轉爲 getter/setter,所以屬性必須在 data 對象上才能讓 Vue.js 轉換它,才能讓它是響應的。
第一次頁面加載會觸發哪幾個生命週期?
- 4個生命週期 : beforeCreate - created - eforeMount - mounted
computed和watch有什麼區別?
-
computed:
- 是計算屬性,也就是計算值,他更多適合計算值的場景。
- 具有緩存性,computed的值在getter執行過成後會緩存的,只有在他依賴的屬性值改變之後,下一次獲取computed的值時纔會重新調用對應的getter值進行計算。
- 適用於:計算比較耗性能的值的計算
-
watch:m
- 觀察作用,類似於某些數據的監聽回調。
用於觀察props和$emit或者本組件的值。當數據變化時來執行回調進行後續操作。 - 無緩存性,頁面重新渲染值不變化也會執行。
- 觀察作用,類似於某些數據的監聽回調。
總結:
當我們要進行數值計算,而且依賴於其他數據,那麼把這個數據設計爲computed
如果你需要在某個數據變化時做一些事情,使用watch來觀察這個數據變化