Vue3之watchEffect

watchEffect:立即执行传入的一个函数,同时响应式追踪其依赖,并在其依赖发生变化时重新执行该函数。默认调用一次

let msg1 = ref<string>('第一个消息')

let msg2 = ref<string>('第二个消息')

watchEffect((oninvalidate)=>{

        console.log('msg1=====>',msg1.value)

        console.log('msg2=====>',msg2.value)

        oninvalidate(()=>{ //监听数据变化之前调用 清除副作用

            console.log('before')

        })

    })

停止监听

const stop =  watchEffect((oninvalidate)=>{

        console.log('msg1=====>',msg1.value)

        console.log('msg2=====>',msg2.value)

        oninvalidate(()=>{

            console.log('before')

        })

    })

stop()

flush:更多的配置选项  pre:组件更新前执行  sync:强制效果始终同步触发  post:组件更新后执行

watchEffect((oninvalidate)=>{

        console.log('msg1=====>',msg1.value)

        console.log('msg2=====>',msg2.value)

        oninvalidate(()=>{

            console.log('before')

        })

    },{

        flush:'pre' ,//pre:组件更新前执行  sync:强制效果始终同步触发  post:组件更新后执行

    })

onTrigger:更多的配置选项  开启debugger,帮助调试

watchEffect((oninvalidate)=>{

        console.log('msg1=====>',msg1.value)

        console.log('msg2=====>',msg2.value)

        oninvalidate(()=>{

            console.log('before')

        })

    },{

        onTrigger(){

            debugger

        }

    })

Vue 3中引入了一个新的API,即`watchEffect`,用于监视响应式数据的变化并执行相应的副作用函数。下面是使用`watchEffect`的介绍: 1. `watchEffect`的基本用法: `watchEffect`接收一个函数作为参数,该函数中可以访问响应式数据,并在数据变化时执行相应的副作用操作。当响应式数据发生变化时,`watchEffect`会自动重新运行该函数。 ```javascript import { watchEffect } from &#39;vue&#39;; watchEffect(() => { // 在这里执行副作用操作 }); ``` 2. 监视特定的响应式数据: 如果你只想监视特定的响应式数据,可以在`watchEffect`函数中直接访问它们。当这些数据发生变化时,副作用函数会被重新执行。 ```javascript import { reactive, watchEffect } from &#39;vue&#39;; const state = reactive({ count: 0, message: &#39;Hello&#39;, }); watchEffect(() => { console.log(state.count); console.log(state.message); }); ``` 3. 停止监视: `watchEffect`返回一个停止监视的函数,可以在需要停止监视时调用。 ```javascript import { reactive, watchEffect } from &#39;vue&#39;; const state = reactive({ count: 0, }); const stop = watchEffect(() => { console.log(state.count); }); // 停止监视 stop(); ``` 4. 监视多个响应式数据: 如果你想同时监视多个响应式数据,可以在副作用函数中访问它们,并将它们作为依赖项传递给`watchEffect`。 ```javascript import { reactive, watchEffect } from &#39;vue&#39;; const state = reactive({ count: 0, message: &#39;Hello&#39;, }); watchEffect(() => { console.log(state.count); console.log(state.message); }, { flush: &#39;post&#39;, deep: true, }); ``` 在上面的示例中,`flush`选项设置为`post`,表示在DOM更新之后执行副作用函数。`deep`选项设置为`true`,表示深度监视响应式数据的变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值