news 2026/4/18 5:23:34

Vue MutationObserver 监听

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vue MutationObserver 监听

MutationObserver 之前写过一篇详解,具体可参考:https://blog.csdn.net/qq_36020334/article/details/156300319?spm=1001.2014.3001.5502

在前端基于Vue的开发中,Vue2用watch来监听数据的变化,通过deep属性的配置项来监听对象内部的变化。 在 Vue3 中使用 proxy 替代了defineProperty 来监听整个对象,便利程度大大提高。
但有时候会遇到这样一些特殊情况,例如:想要给一个按钮动态的绑定一个样式,这个样式的绑定依赖于定义的一个变量,但是该变量也是动态的,变量的值依赖于另外一个内部组件样式的变化。 这就用到了 MutationObserver 去监听一个特定样式的变化,进而去实现业务的需求

代码实现:

<template> <div :class="{'mycolor':isActive}" class="content"> <el-button type="primary" class="el-button" @click.stop="openDialog" >打开弹窗</el-button > <el-dialog ref="dialog" title="我是弹窗啊" width="300px" :visible="false" :before-close="dialogBeforeClose" > <div></div> <div slot="footer"> <el-button @click="dialogBeforeClose">取 消</el-button> <el-button type="primary" @click="dialogBeforeClose">确 定</el-button> </div> </el-dialog> </div> </template> <script> export default { name: "testContent", data() { return { isActive: false, }; }, mounted() { this.$nextTick(() => { this.watchDialogStyle(this.$refs.dialog.$el); }); }, methods: { openDialog() { this.$refs.dialog.$el.style.display = "block"; }, dialogBeforeClose() { this.$refs.dialog.$el.style.display = "none"; }, watchDialogStyle(dialog) { const observer = new MutationObserver( (mutations) => { mutations.forEach((mutation) => { if(dialog.style.display === 'none'){ this.isActive = true; } else{ this.isActive = false; } }); }); observer.observe(dialog, { attributeFilter: ["style"] }); }, }, }; </script>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 19:23:36

Vue.directive:自定义指令及传参

Vue官方提供很多指令&#xff0c;比如&#xff1a;v-model&#xff0c;v-show&#xff0c;v-if&#xff0c;v-on等&#xff0c;他们都以v-开头。当这些指令不能满足实际开发需求时&#xff0c;我们可以自定义指令&#xff0c;包括全局自定义指令和局部自定义指令。聚焦于底层DO…

作者头像 李华
网站建设 2026/4/4 16:33:52

当代糊弄学巅峰:如何用AI写完你的年终总结,并让你老板热泪盈眶

面对空白的文档光标闪烁&#xff0c;你即将解锁职场终极技能&#xff1a;用AI把一年的摸鱼时光&#xff0c;编织成令老板动容的奋斗史诗。深夜十一点&#xff0c;办公室的灯光下&#xff0c;张伟对着电脑屏幕上只有“2025年度工作总结”几个字的文档发呆。过去一年的记忆如同碎…

作者头像 李华
网站建设 2026/4/16 11:01:18

告别高延迟!用TensorRT镜像优化你的LLM推理流程

告别高延迟&#xff01;用TensorRT镜像优化你的LLM推理流程 在大模型落地的浪潮中&#xff0c;一个看似不起眼却频频卡脖子的问题正困扰着无数工程师&#xff1a;为什么训练好的LLM一到生产环境就“卡成PPT”&#xff1f; 用户提问刚发出去&#xff0c;系统要等两秒才开始打字&…

作者头像 李华
网站建设 2026/4/12 3:52:16

详解TensorRT层融合技术:如何减少模型计算冗余

详解TensorRT层融合技术&#xff1a;如何减少模型计算冗余 在今天的AI系统中&#xff0c;一个训练得再精准的模型&#xff0c;如果推理延迟高、吞吐量低&#xff0c;也难以在真实业务场景中落地。比如&#xff0c;智能安防摄像头每秒要处理数十路视频流&#xff0c;推荐系统需要…

作者头像 李华
网站建设 2026/4/17 18:42:57

INT8精度校准全攻略:在TensorRT中实现无损压缩

INT8精度校准全攻略&#xff1a;在TensorRT中实现无损压缩 在自动驾驶的感知系统里&#xff0c;一个实时目标检测模型需要在30毫秒内完成推理&#xff1b;在智能音箱背后&#xff0c;语音识别模块必须以极低功耗持续监听唤醒词。这些场景背后都有一个共同挑战&#xff1a;如何…

作者头像 李华
网站建设 2026/4/14 13:36:11

使用TensorRT优化Text-to-SQL自然语言查询转换

使用TensorRT优化Text-to-SQL自然语言查询转换 在企业智能化转型的浪潮中&#xff0c;越来越多的业务系统开始尝试让用户“用说话的方式”访问数据库。比如&#xff0c;销售主管在移动端输入一句&#xff1a;“上个月华东区销售额最高的产品是什么&#xff1f;”系统便能自动生…

作者头像 李华