vue 3 观看个人状态 属性
vue 3 watch individual state property
我的设置函数:
setup() {
const state = reactive({
// .....
venueFilter: null,
})
const venueFilter = ref(state.venueFilter);
watch(venueFilter, ()=> {
console.log('invoked watch');
if(venueFilter) {
doSomething();
}
});
return {
...toRefs(state),
//.....
}
}
上面的手表没有被触发(console.log('invoked watch');
没有在模板中 state.venueFilter
更改时打印出来。那么我该如何观看 state.venueFilter
?
您不能从 属性 这样的反应对象进行引用。这一行:
const venueFilter = ref(state.venueFilter); //venueFilter will not react to changes in state.venueFilter
相反,您可以传入一个 getter 函数作为第一个参数来观察 returns 一个值:
watch(()=>state.venueFilter, ()=> {
console.log('invoked watch');
});
Here's a working example to demonstrate
您也可以先调用 toRefs(state) 并传入由此创建的 venueFilter 引用。
我的设置函数:
setup() {
const state = reactive({
// .....
venueFilter: null,
})
const venueFilter = ref(state.venueFilter);
watch(venueFilter, ()=> {
console.log('invoked watch');
if(venueFilter) {
doSomething();
}
});
return {
...toRefs(state),
//.....
}
}
上面的手表没有被触发(console.log('invoked watch');
没有在模板中 state.venueFilter
更改时打印出来。那么我该如何观看 state.venueFilter
?
您不能从 属性 这样的反应对象进行引用。这一行:
const venueFilter = ref(state.venueFilter); //venueFilter will not react to changes in state.venueFilter
相反,您可以传入一个 getter 函数作为第一个参数来观察 returns 一个值:
watch(()=>state.venueFilter, ()=> {
console.log('invoked watch');
});
Here's a working example to demonstrate
您也可以先调用 toRefs(state) 并传入由此创建的 venueFilter 引用。