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》,该博主讲的很详细!!!

相关推荐

  1. Vue watch watchEffect 区别

    2024-07-23 08:50:04       17 阅读
  2. Vue3watchwatchEffect区别

    2024-07-23 08:50:04       36 阅读
  3. Vue3 watchwatchEffect区别

    2024-07-23 08:50:04       17 阅读
  4. 深入理解Vue3watchwatchEffect使用区别

    2024-07-23 08:50:04       47 阅读
  5. Vue 3 watchwatchEffect区别

    2024-07-23 08:50:04       19 阅读
  6. vue watch 、computed、 watchEffect 区别

    2024-07-23 08:50:04       53 阅读
  7. vue3里watch watchEffect

    2024-07-23 08:50:04       44 阅读
  8. watchwatcheffect区别

    2024-07-23 08:50:04       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-23 08:50:04       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-23 08:50:04       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-23 08:50:04       45 阅读
  4. Python语言-面向对象

    2024-07-23 08:50:04       55 阅读

热门阅读

  1. Python题解Leetcode Hot100之回溯

    2024-07-23 08:50:04       13 阅读
  2. 【MySQL进阶之路 | 高级篇】反范式化概述

    2024-07-23 08:50:04       12 阅读
  3. python—爬虫爬取图片网页实例

    2024-07-23 08:50:04       18 阅读
  4. stm32 io输入中断

    2024-07-23 08:50:04       19 阅读
  5. pytorch lightning报错all tensors to be on the same device

    2024-07-23 08:50:04       12 阅读
  6. 关于正运动学解机器人手臂算法

    2024-07-23 08:50:04       17 阅读
  7. Torus结构代码实现

    2024-07-23 08:50:04       17 阅读
  8. linux命令-touch-修改文件时间

    2024-07-23 08:50:04       14 阅读
  9. Oracle(17)什么是物化视图(Materialized View)?

    2024-07-23 08:50:04       14 阅读
  10. Electron 和 React 开发桌面应用程序

    2024-07-23 08:50:04       16 阅读