vue的computed触发机制
时间: 2023-05-24 12:01:37 浏览: 1299
Vue的computed触发机制是响应式依赖收集,只有当依赖的数据发生变化时才会重新计算computed的值。当computed中使用的响应式数据被修改时,Vue会通知依赖收集器更新依赖数据,并重新计算computed的值。如果computed依赖的数据没有被修改,则不会重新计算computed的值。
相关问题
vue computed
在 Vue.js 中,computed 属性是一种计算属性,用于在模板中动态计算某个值并返回结果。computed 属性可以依赖于响应式数据,并且只有在依赖的数据发生变化时才会重新计算。这样可以避免频繁的计算和重复的代码。
computed 属性定义在 Vue 实例的 computed 属性中,它是一个对象,对象的每个属性都是一个计算属性。计算属性可以通过函数返回计算结果,也可以通过 get 和 set 方法来实现计算属性的读写操作。
例如,下面是一个计算属性的示例:
```
<template>
<div>
<p>原始数值:{{ num }}</p>
<p>计算后的数值:{{ computedNum }}</p>
</div>
</template>
<script>
export default {
data() {
return {
num: 1
}
},
computed: {
computedNum() {
return this.num * 2
}
}
}
</script>
```
在上面的示例中,我们定义了一个计算属性 computedNum,它返回 this.num * 2 的计算结果。因为 computedNum 依赖于 num,所以当 num 发生变化时,computedNum 会重新计算并更新视图。
另外,computed 属性还可以与 watch 属性结合使用,当计算属性的值发生变化时,触发 watch 属性中的回调函数执行相应的操作。
vue computed set不生效
在Vue中,computed属性的set方法默认是不会被执行的,只有在对computed属性进行重新赋值时才会触发set方法。这是因为computed属性是根据它所依赖的响应式数据进行计算的,而set方法的作用是用于修改computed属性所依赖的响应式数据。
如果你想要在computed属性的set方法中执行一些操作,可以通过对computed属性进行重新赋值来触发set方法。例如,对于一个名为fullName的computed属性,你可以通过对它进行赋值来触发set方法,如下所示:
```javascript
app.fullName = "new value";
```
这样就会触发fullName的set方法,并执行其中的操作。你可以在set方法中使用console.log()方法来输出一些信息,以便在控制台中查看set方法是否被执行。
请注意,如果你只是获取computed属性的值而没有对它进行重新赋值,那么get方法会被执行,而set方法不会被执行。