淘先锋技术网

首页 1 2 3 4 5 6 7

computed方法在Vue中是一个很重要的概念,可以说它是Vue框架中的精华之一。computed方法是一个可以根据已有的数据动态计算得出结果的方法,这种方法可以有效地避免代码的冗余,提高代码的可读性和可维护性。

// 一个计算商品的总价的例子
computed: {
totalPrice: function () {
var result = 0;
for (var i = 0; i< this.goodsList.length; i++) {
result += this.goodsList[i].price * this.goodsList[i].quantity;
}
return result;
}
}

计算属性的基本用法就是在Vue组件中定义一个computed对象,然后在其中定义一个函数,函数的返回值就是新的计算的值,该函数只有在被依赖的数据变化时才会重新计算,这样可以避免不必要的计算。计算属性是基于依赖关系缓存的,当计算属性所依赖的数据变化时才会重新计算,否则直接返回缓存中的值。

与computed属性相同的还有watch属性,watch属性是用来监听数据的变化,当有数据变化时就会执行相应的函数,一旦有数据变化,它就会触发一个回调函数,然后该函数可以进行一些异步操作,例如服务端请求、更新视图等等。

// 一个watch函数的例子
watch: {
'counter': function (newVal, oldVal) {
console.log('Counter changed from ' + oldVal + ' to ' + newVal);
}
}

虽然watch属性和computed属性的作用都是根据响应式数据的变化动态计算出新的值,但是他们的主要区别在于计算属性会缓存计算结果,而watch函数则不会,当监听到数据变化时,watch函数总是需要进行重新计算。

总体而言,在对Vue组件进行数据处理的时候,应该优先考虑使用computed属性,因为计算属性的代码相对来说更容易理解、维护和优化。只有在一些特殊情况下才会去使用watch属性计算数据,当需要执行异步操作或者需要判断更加复杂的逻辑时,watch属性比computed属性要更加的灵活和方便。