Vue常考知識點--computed 和 watch 區別

LuckXinXin發表於2020-12-06
  • computed 是計算屬性,依賴其他屬性計算值,並且 computed 的值有快取,只有當計算值變化才會返回內容。
  • watch 監聽到值的變化就會執行回撥,在回撥中可以進行一些邏輯操作。
  • 所以一般來說需要依賴別的屬性來動態獲得值的時候可以使用 computed,對於監聽到值的變化需要做一些複雜業務邏輯的情況可以使用 watch
  • 另外 computerwatch 還都支援物件的寫法,這種方式知道的人並不多。
vm.$watch('obj', {
    // 深度遍歷
    deep: true,
    // 立即觸發
    immediate: true,
    // 執行的函式
    handler: function(val, oldVal) {}
})
var vm = new Vue({
  data: { a: 1 },
  computed: {
    aPlus: {
      // this.aPlus 時觸發
      get: function () {
        return this.a + 1
      },
      // this.aPlus = 1 時觸發
      set: function (v) {
        this.a = v - 1
      }
    }
  }
})

相關文章