美文网首页
watchEffect

watchEffect

作者: 唐吉柯德 | 来源:发表于2021-04-19 21:42 被阅读0次

功能和watch大致相当区别是

  • 初始化时会自动执行一次和计算属性同理
  • 不用传入依赖的数据,自己会主动收集依赖
  • watchEffect拿不到oldValue
  • watchEffect返回一个可以停止watchEffect的函数句柄可以通过调用此函数停止watch
  • watchEffect传入的回调函数会以参数的形式返回一个onInvalidate,onInvalidate(fn)传入的回调会在 watchEffect 重新运行或者 watchEffect 停止的时候执行
<template>
  <div class="page-wrapper">
    <p>-------------------------------shallowReactive--------------------------</p>
    <p>{{stuAge}}</p>
    <button @click="myFn">点我一下</button>
  </div>
</template>
<script lang="js">
import { defineComponent, ref, watchEffect } from 'vue';
export default defineComponent({
  name: 'effect-test',
  setup(){
    let stuAge= ref(0);
    function myFn(){
        stuAge.value++;
    }
    const stop= watchEffect(onInvalidate => {
        console.log('effect enter', stuAge.value);

        //处理watchEffect频繁调用的逻辑
        onInvalidate(()=> {
            console.log('onInvalidate enter');
        })
        if(stuAge.value === 3){
            stop();
        }
    })
    return {
        stuAge,
        myFn
    }
  }
  
})
</script>

相关文章

网友评论

      本文标题:watchEffect

      本文链接:https://www.haomeiwen.com/subject/iadolltx.html