vue+ts 第八章(认识watchEffect高级侦听器)

watchEffect

立即执行传入的一个函数,同时响应式追踪其依赖,并在其依赖变更时重新运行该函数。

如果用到message 就只会监听message 就是用到几个监听几个 而且是非惰性 会默认调用一次

let message = ref<string>('')

let message2 = ref<string>('')

watchEffect(() => {

//console.log('message', message.value);

console.log('message2', message2.value);

})

清除副作用

就是在触发监听之前会调用一个函数可以处理你的逻辑例如防抖

import { watchEffect, ref } from 'vue'

let message = ref<string>('')

let message2 = ref<string>('')

watchEffect((oninvalidate) => {

//console.log('message', message.value);

oninvalidate(()=>{

})

console.log('message2', message2.value);

})

停止跟踪 watchEffect 返回一个函数 调用之后将停止更新

const stop = watchEffect((oninvalidate) => {

//console.log('message', message.value);

oninvalidate(()=>{

})

console.log('message2', message2.value);

},{

flush:"post",

onTrigger () {

}

})

stop()

更多的配置项

副作用刷新时机 flush 一般使用post
pre sync post
更新时机 组件更新前执行 强制效果始终同步触发 组件更新后执行

onTrigger 可以帮助我们调试 watchEffect

import { watchEffect, ref } from 'vue'
let message = ref<string>('')
let message2 = ref<string>('')
watchEffect((oninvalidate) => {
//console.log('message', message.value);
oninvalidate(()=>{
})
console.log('message2', message2.value);
},{
flush:"post",
onTrigger () {
}
})

相关推荐
二十雨辰3 分钟前
[JS]面向对象ES6
前端·javascript·ajax
GDAL4 分钟前
css之transform-origin
前端·css
疯狂创作者6 分钟前
十款绚丽的前端 CSS 菜单导航动画
前端·css
秃头女孩y29 分钟前
前端之CSS篇--面试题总结
前端·css
2402_8575834930 分钟前
定制化的 CSS 魔法:WebKit 处理 CSS 变量的深度解析
前端·css·webkit
椰果uu32 分钟前
实习手记(2):前端菜鸟的摸鱼与成长
前端·前端实习
一只理智恩37 分钟前
React中的useCallback
前端·javascript·react.js
@PHARAOH38 分钟前
HOW - React Router v6.x Feature 实践(react-router-dom)
前端·react.js·前端框架
林强18141 分钟前
React Redux使用@reduxjs/toolkit的hooks
前端·javascript·react.js
不掉头发的程序猿宝宝1 小时前
Node.js_fs模块
前端