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

结尾

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

相关推荐
清山博客16 小时前
OpenCV 人脸识别和比对工具
前端·webpack·node.js
要加油哦~16 小时前
AI | 实践教程 - ScreenCoder | 多agents前端代码生成
前端·javascript·人工智能
程序员Sunday16 小时前
说点不一样的。GPT-5.3 与 Claude Opus 4.6 同时炸场,前端变天了?
前端·gpt·状态模式
yq19820430115616 小时前
静思书屋:基于Java Web技术栈构建高性能图书信息平台实践
java·开发语言·前端
aPurpleBerry16 小时前
monorepo (Monolithic Repository) pnpm rush
前端
青茶36016 小时前
php怎么实现订单接口状态轮询请求
前端·javascript·php
鹏北海17 小时前
micro-app 微前端项目部署指南
前端·nginx·微服务
发现一只大呆瓜17 小时前
虚拟列表:从定高到动态高度的 Vue 3 & React 满分实现
前端·vue.js·react.js
css趣多多17 小时前
add组件增删改的表单处理
java·服务器·前端
证榜样呀17 小时前
2026 大专计算机专业必考证书推荐什么
大数据·前端