Vue3中watch 与 watchEffect的区别

watchEffect和watch的区别:

1. watchEffect功能更强大,初始和卸载 (也可以替代生命周期钩子的一些功能)

2. watch可以拿到新值和旧值的,newVal oldVal

watch指定监视具体哪个响应式数据,发生改变,触发回调函数

watch第一个参数监听源
watch第二个参数回调函数(newVal,oldVal)
watch第三个参数一个options配置项是一个对象{
immediate:true //是否立即调用一次
deep:true 是否开启深度监听
}

watchEffect不用指定监视哪个响应式数据,监视的回调中用到哪个响应式数据就监视哪个,触发回调函数

  watchEffect((cb)=>{   初始的时候,就会触发这个回调函数 (created),DOM更新前触发的

    在回调中使用了对应的响应式数据,那么只要这个对应的响应式数据发生改变,就会重新触发回调
    console.log(count.value)
    //每次用户id发生变化,触发,获取当前用户的信息
    //axios.get(`/api/users?id=${userid.value}`)

    timer = setInterval()
    //console.log(1111111)
    cb(()=>{   卸载组件的时候会触发( 做一些清理工作 ),还可以在响应式数据更新前触发
      console.log(2222222)
       clearInterval(timer)
    })

  })

你可能感兴趣的:(前端,javascript,vue,vue.js)