vue3 的 compued 的set属性什么时候触发
时间: 2024-04-13 07:30:19 浏览: 10
在 Vue 3 中,`computed` 的 `set` 方法会在你尝试修改计算属性的值时触发。具体来说,当你在模板或组件中使用 `v-model` 来绑定计算属性,并修改绑定的值时`set` 方法会被触发。
例如,在以下示例中:
```vue
template>
<div>
Count: {{ count }} <br>
Double Count: {{ doubleCount }} <br>
<input v-model="doubleCount">
div>
</template>
<script>
import { computed, ref } from 'vue';
export default {
setup() {
const count = ref(0);
const doubleCount = computed({
get() {
return count.value * 2;
},
set(value) {
count.value = value / 2;
},
});
return {
count,
doubleCount,
};
},
};
</script>
```
当你在输入框中修改 `doubleCount` 的值时,会触发 `set` 方法,进而更新 `count` 的值。这是因为 `v-model` 实际上是双向绑定了 `doubleCount` 的 `get` 和 `set` 方法。
需要注意的是,只有在使用 `v-model` 或直接修改计算属性绑定的值时,`set` 方法才会被触发。如果只是通过 `doubleCount.value = newValue` 这样的方式来修改计算属性的值,是不会触发 `set` 方法的。