watch用错性能掉一半

下面提出的方案,主要用于解决 Vue3 开发中的问题。

深度监听造成的性能浪费

使用深度监听(deep: true)时,它会遍历对象的所有属性。只要其中任一属性发生变化,就会触发监听,可能导致性能浪费。

对此我提供了三种解决方案

精确监听

js 复制代码
watch(
    () => bigObject.user.profile.name,
    (newVal) => {
        // 做对应业务处理
    }
)

使用 computed 做中间件

js 复制代码
const userData = computed (()=>({
    name: bigObject.user.name,
    age: bigObject.user.age
}))

watch(
    () => userData,
    (newVal) => {
        // 做对应业务处理
    }
)

使用多源监听

js 复制代码
cosnt form = relative({
    password: '',
    confirmPassword: ''
})

watch(
    [()=>bigObject.user.name, ()=>bigObject.user.age],
    ([newName, newAge])=>{
        // 处理对应业务
    }
)

结尾

我会每天更新一个知识点。如果你在开发中遇到难题,可以留言到评论区,我会选取部分问题作为选题进行解答。欢迎各位同学提问和交流!

相关推荐
一 乐6 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
C_心欲无痕7 小时前
ts - tsconfig.json配置讲解
linux·前端·ubuntu·typescript·json
清沫7 小时前
Claude Skills:Agent 能力扩展的新范式
前端·ai编程
yinuo7 小时前
前端跨页面通信终极指南:方案拆解、对比分析
前端
北辰alk7 小时前
Vue 模板引擎深度解析:基于 HTML 的声明式渲染
vue.js
北辰alk8 小时前
Vue 自定义指令完全指南:定义与应用场景详解
vue.js
yinuo8 小时前
前端跨页面通讯终极指南⑨:IndexedDB 用法全解析
前端
北辰alk8 小时前
Vue 动态路由完全指南:定义与参数获取详解
vue.js
北辰alk8 小时前
Vue Router 完全指南:作用与组件详解
vue.js
北辰alk8 小时前
Vue 中使用 this 的完整指南与注意事项
vue.js