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])=>{
        // 处理对应业务
    }
)

结尾

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

相关推荐
c***V3232 小时前
Vue优化
前端·javascript·vue.js
李@十一₂⁰4 小时前
HTML 特殊字体符号
前端·html
小奶包他干奶奶6 小时前
Webpack学习——Loader(文件转换器)
前端·学习·webpack
zy happy7 小时前
若依 vue3 报错:找不到模块“@/api/xxxx/xxxxx”或其相应的类型声明。。Vue 3 can not find mod
前端·javascript·vue.js
潘小安7 小时前
Git Worktree + Claude Code:让你的开发效率翻倍的秘密武器
前端
meichaoWen7 小时前
【Vue3】vue3的全面学习(一)
前端·javascript·学习
小猪努力学前端8 小时前
在 React + React Router v7 SSR 项目里做多端适配,我踩的两个坑
前端·react.js
q***d1738 小时前
React桌面应用开发
前端·react.js·前端框架
8***29318 小时前
解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域
java·前端·spring
0***148 小时前
React计算机视觉应用
前端·react.js·计算机视觉