Vue的基礎理解(八)

爲什麼會出現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來觀察這個數據變化

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章