gpt4 book ai didi

javascript - Vue 3 : computed property doesn't track its dependency in composition API

转载 作者:行者123 更新时间:2023-12-04 14:35:22 26 4
gpt4 key购买 nike

考虑这个说明性的例子:

const App = {
setup() {
const name = Vue.ref("");
let firstTime = true;
const message = Vue.computed(() => {
if (firstTime) {
firstTime = false;
return "Welcome stranger";
}
return `Hello ${name.value}`;
});

return {
name,
message
}
}
};

Vue.createApp(App).mount("#root");
<script src="https://unpkg.com/vue@next"></script>
<div id="root">
name: <input v-model="name"/> <br/>
message: {{ message }}
</div>

如您所见, message存储应该跟踪更新到 name 的计算值但事实并非如此。
为什么会这样以及如何解决?

最佳答案

Computed 应该始终使用您想要计算的不可变的响应式(Reactive) ref 对象。
因此,如果您在开始时声明您正在使用的 react 性对象,它将起作用。

const App = {
setup() {
const name = Vue.ref("");
let firstTime = true;
const message = Vue.computed(() => {
name.value;
if (firstTime) {
firstTime = false;
return "Welcome stranger";
}
return `Hello ${name.value}`;
});

return {
name,
message
}
}
};

Vue.createApp(App).mount("#root");
<script src="https://unpkg.com/vue@next"></script>
<div id="root">
name: <input v-model="name"/> <br/>
message: {{ message }}
</div>

关于javascript - Vue 3 : computed property doesn't track its dependency in composition API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64101042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com