欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > Vue中 watch 与 watchEffect 的区别

Vue中 watch 与 watchEffect 的区别

2025/9/19 20:55:20 来源:https://blog.csdn.net/qq_43692768/article/details/140619543  浏览:    关键词:Vue中 watch 与 watchEffect 的区别

Watch

  • 默认是懒侦听,即仅在侦听源发生变化时才执行回调函数。
  • 只追踪明确定义的数据源,不会追踪在回调中访问到的东西
  • 可以访问侦听数据的新值和旧值。
  • 总共接收三个参数,侦听数据源、回调函数和配置选项。
const x = ref(1)
const y = ref(1)
const doubleX = computed(() => x.value * 2)
const obj = reactive({ count: 0 })// 单个 ref
watch(x, (newValue) => {console.log(`x is ${newValue}`)
})// 计算属性
watch(doubleX, (newValue) => {console.log(`doubleX is ${newValue}`)
})// getter 函数
watch(() => x.value + y.value,(sum) => {console.log(`sum of x + y is: ${sum}`)}
)// 响应式对象
watch(obj, (newValue, oldValue) => {// 在嵌套的属性变更时触发// 注意:`newValue` 此处和 `oldValue` 是相等的// 因为它们是同一个对象!
})// 以上类型的值组成的数组
watch([x, () => y.value], ([newX, newY]) => {console.log(`x is ${newX} and y is ${newY}`)
})

WatchEffect

  • 初始化执行一次
  • 在副作用发生期间追踪依赖,自动分析出侦听数据源
  • 无法访问侦听数据的新值和旧值。
  • 接受两个参数,回调函数、配置对象。
const url = ref('https://...')
const data = ref(null)// 自动分析出侦听数据源
watchEffect(async () => {const response = await fetch(url.value)data.value = await response.json()
})

想要深入学习的同学,可以查阅这篇文章—《彻底搞懂 Watch、WatchEffect》,该博主讲的很详细!!!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词