Vue.js Vuejs已计算,请使其处于被动状态

Vue.js Vuejs已计算,请使其处于被动状态,vue.js,vuejs2,computed-properties,mutators,Vue.js,Vuejs2,Computed Properties,Mutators,我需要将计算出的值保存在数据库中,但似乎无法使用以下示例访问它: 计算:{ 总数:{ get:function(){ 返回此.items.reduce( (acc,item)=>acc+(item.price*item.quantity)*(1-item.折扣/100),0 ) }, set:函数(newValue){ console.log(newValue); //this.totota=新值; } } }, 在模板中,计算值运行良好,但控制台中没有显示任何内容 我正在使用vue 2.6.

我需要将计算出的值保存在数据库中,但似乎无法使用以下示例访问它:

计算:{
总数:{
get:function(){
返回此.items.reduce(
(acc,item)=>acc+(item.price*item.quantity)*(1-item.折扣/100),0
)
},
set:函数(newValue){
console.log(newValue);
//this.totota=新值;
}
}
},
在模板中,计算值运行良好,但控制台中没有显示任何内容

我正在使用vue 2.6.11


这是最好的方法吗?我应该使用方法吗?

我认为手动设置计算值时会调用
计算设置程序。例如,如果执行类似于
this.total=newTotal
的操作,将触发setter。为了在数据库更新时将计算值保存在数据库中,您可能需要设置一个监视程序:

computed: {
  total: {
    get: function() {
      return this.items.reduce(
        (acc, item) => acc + (item.price * item.quantity) * (1 - item.discount / 100), 0
      )
    }
  }
},
watch: {
  total(newValue) {
    // Save to database
  }
}

你可以在这里了解更多。希望这能帮助您解决问题。

谢谢,我不得不将watcher置于计算函数之外,但它工作得很好。是的,对不起,这是我的错误。它确实应该在外面。很高兴有帮助!顺便说一句,我更新了答案。仍然想知道为什么文档上的示例不起作用。你可以看看我刚才在这里写的一个小示例:。