有時候我們在運行我們的項目的時候會出現如下警告
原因:一個計算屬性,如果沒有設置 setter,也就是傳入的是一個函數,或者傳入的對象里沒有 set 屬性,當你嘗試直接改變這個計算屬性的值,都會報這個錯誤,計算屬性默認只有getter。
解決:把computed中的route屬性改成如下格式
computed: { route () { // getter get: function () { return this.$store.state.curTab.route }, // setter set: function (newValue) { this.$store.state.curTab.route = newValue } }
computed VS watch
computed比較適合的場景是多個數據影響一個數據,比如商品總價隨着商品數量及商品種類的影響
watch比較適合的場景是一個數據影響多個數據,比如監控路由、input輸入框的值特殊處理等等