watcheffect 是 vue3 中提供的一个新特性,用于监听响应式数据的变化,并在数据发生变化时执行指定的回调函数。
与 Vue2 中的 watch 不同,watchEffect 不需要指定要监听的数据,而是会自动追踪函数中使用的响应式数据,并在这些数据发生变化时重新执行回调函数。这种自动追踪的特性可以简化代码,并提高应用的性能。
下面是一个使用 watchEffect 的示例:
import { watchEffect, reactive } from 'vue'
const state = reactive({
count: 0
})
watchEffect(() => {
console.log(state.count)
})在上面的代码中,我们使用 reactive 函数创建了一个响应式对象 state,并使用 watchEffect 监听了 state.count 属性的变化。当 state.count 发生变化时,回调函数会被重新执行。
需要注意的是,watchEffect 返回一个无需停止的监听器函数。如果需要停止监听,可以调用这个监听器函数来停止监听。
立即学习“前端免费学习笔记(深入)”;
1、什么是店中店?店中店是全诚商多用户版的一大特色,它既是独立的个体,又具有群集功能。我们做个例子说明:假设尊贵的您现实生活中租赁了一个店面,店面空间很大,您可以把您的店面分割成很多独立空间再向别人转租,这样您可以额外获得一部分租赁费用收入,借以减少你的个人租赁费用投入,还能起到活跃销售场所的气氛,俗话说:货卖一堆吗。你租赁的店面可以完全分割成很多空间向外转租,也可以自己保留一块空间为自己销售商品
除了监听响应式数据的变化外,watchEffect 还支持在回调函数中访问组件的上下文,例如 this 关键字和组件的计算属性等。
下面是一个使用 watchEffect 访问组件计算属性的示例:
import { watchEffect, computed } from 'vue'
export default {
computed: {
doubleCount () {
return this.count * 2
}
},
mounted () {
watchEffect(() => {
console.log(this.doubleCount)
})
}
}在上面的代码中,我们使用 computed 函数创建了一个计算属性 doubleCount,并在 mounted 钩子函数中使用 watchEffect 监听了 doubleCount 的变化。当 doubleCount 发生变化时,回调函数会被重新执行。









