vue3中的watchEffect/watch的理解和应用

基础定义:

watch:

  • 用法与vue2大多一样,区别是vue3中的监听的值得是响应式的。例如:ref/reactivecomputed等声明的,否则监听无效。(ref声明的记得加.value)
  • 第一个参数:一个响应式对象(复杂数据类型)或者是一个函数返回值(简单数据类型)
  • 第二个参数:函数有两个参数(newVal, oldVal)。
  • 第三个参数:{immediate: true,deep:true}

watchEffect:

  • 作用同样是监听,监听范围是函数体内用到的对象属性、取值等涉及到的值的变化。自动收集依赖关系。
  • 只要依赖值有变化都会执行一遍,所以对该函数体内值的变化不熟悉的慎用。但是用得好的话,事半功倍。(初始自动执行一次)

简单示例:

let str = ref('hello');

watch(() => str.value, (newVal,oldVal) => {
  console.log(newVal)
}, { immediate: true, deep: true })

watchEffect(() => {
  if (str.value == "hello") {
    // do something
  }
  console.log(str.value)
})

setTimeout(() => { str.value = '你好'},3000)

// 可注释一个监听,查看效果

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值