computed:
有緩存機制;不能接受參數;可以依賴其他computed,甚至是其他組件中的data;不能與data中的屬性重復
watch:
可接受兩個參數;監聽時可觸發一個回調,並做一些事情;監聽的屬性必須存在;允許異步
watch配置:handler、deep(是否深度)、immeditate(是否立即執行)
比如監聽路由變化
watch:{ $route:{ handler: function(val, oldVal){ console.log(val); }, // 深度觀察監聽 deep: true } }
總結:
當有一些數據需要隨着另外一些數據變化時,建議使用computed
當有一個通用的響應數據變化的時候,要執行一些業務邏輯或異步操作的時候建議使用watch