问个问题, vue computed不建议赋值, 因为computed是个只读对象, 但是computed不是有个set吗, 我现在在composition api, setup语法糖中想使用set并且给computed赋值该怎么做呢
问个问题, vue computed不建议赋值, 因为computed是个只读对象, 但是computed不是有个set吗, 我现在在composition api, setup语法糖中想使用set并且给computed赋值该怎么做呢
在 Vue 3 的 Composition API 中,你可以使用 ref
和 reactive
函数来创建响应式对象,并使用 set
函数来更新这些响应式对象。
但是,注意在 Vue 的 computed
函数中,我们通常不使用 set
函数来赋值。这是因为 computed
是一个计算属性,它应该只读,并且总是返回根据其依赖关系计算的结果。
如果你需要一个可以改变的值,你可能需要使用一个普通的响应式引用(如 ref
或 reactive
),然后在需要改变它的地方使用 set
函数。
以下是一个示例:
import { ref, reactive, set } from 'vue';
export default {
setup() {
const count = ref(0); // 初始值
const state = reactive({ count });
set(state, 'count', 10); // 修改值
console.log(state.count.value); // 输出 10
},
};
在上述代码中,我们首先使用 ref
创建了一个响应式引用 count
,然后使用 reactive
创建了一个响应式对象 state
,并将 count
作为 state
的一个属性。然后,我们使用 set
函数修改了 state.count
的值。这个修改是响应式的,所以当 state.count
的值改变时,任何依赖于它的地方都会自动更新。
ref
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答4.9k 阅读✓ 已解决
3 回答3.3k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
你是否是要这样: