watch 与watcheffect的区别
时间: 2023-11-27 07:43:13 浏览: 82
Vue3-Watch、Watcheffect、Computed的使用和区别
watch 和 watchEffect 是 Vue.js 中用于监听数据变化的两个 API。
watch 是一个侦听器,用于监听指定的数据变化并执行回调函数。它可以监听普通的数据、计算属性以及深层对象的变化。当被监听的数据发生变化时,回调函数会被触发,并接收到新值和旧值作为参数。
watchEffect 是一个自动运行的副作用函数,它会自动追踪其内部所使用的响应式数据,并在其发生变化时重新运行。它适用于处理不需要精确控制的副作用操作,比如执行一个异步操作或者直接对 DOM 进行操作。
总结一下区别:
1. watch 是声明式的侦听器,需要明确指定要监听的数据,并且需要手动处理副作用逻辑。而 watchEffect 是自动运行的副作用函数,会自动追踪响应式数据,并在其变化时重新运行副作用逻辑。
2. watch 可以监听普通的数据、计算属性和深层对象的变化,而 watchEffect 只能追踪其内部使用到的响应式数据。
3. watch 使用时需要提供一个回调函数来处理数据变化的逻辑,而 watchEffect 直接将副作用逻辑放在函数体内部。
阅读全文