vue2watch与vue3watch的区别?
Vue 2的watch:
- 在Vue 2中,可以使用watch选项或$watch方法来创建一个监听器。
watch选项用于定义一个或多个被监听的数据,并指定一个处理函数来响应数据变化。 - watch选项的写法比较灵活,可以是一个对象,也可以是一个函数。
在一个watch选项中,还可以使用deep和immediate属性来指定深度监听和立即执行处理函数。
Vue 3的watch:
- 在Vue 3中,watch选项被废弃,使用watch函数来替代。可以在组件的setup函数中使用watch函数创建一个监听器。
- watch函数接收两个参数:要监听的数据或表达式,以及一个回调函数来响应数据变化。
- watch函数内部使用响应式引用来追踪依赖关系,只有在回调函数中使用的响应式数据发生变化时,才会执行回调函数。
- watch函数还可以接收一些配置选项,如deep、immediate、flush等,用于设置监听的行为。
但是在vue3中他是自动开启 deep 深度监听,vue2中需要进行配置
vue3中的watchEffect:
-
watchEffect函数的作用:
传入的一个函数,当依赖项变化的时候,重新执行改函数。 -
watchEffect函特性:
与watch相似都可以监听一个数据源。
但是watchEffect会在初始化的时候调用一次,与watch的immediate类似。
watchEffect函数不仅可以监视对象的属性变化,还可以监视数组的变化。当一个数组中的元素发生变化时,watchEffect函数也会自动重新运行。
总体来说,Vue 3的watch相比Vue 2的watch有以下改进:
- 简化了语法,采用了函数API的形式,与组件的setup函数结合更加紧密。
- 使用响应式引用追踪依赖关系,只有在回调函数中使用的响应式数据发生变化时才执行,提高了性能并减少不必要的执行。
- 提供了更多的配置选项,使得监听更加灵活和可控。