当前位置: 首页 > news >正文

模态框与DOM,及React和Vue中的优化

为避免层级、布局和事件体系导致的副作用(例如受父元素的CSS影响)

模态框通常挂在 document.body 或根节点下

直接 DOM 操作

首先我想的是

const modal = document.createElement('div') modal.className = 'modal' document.body.appendChild(modal)

然后配置 z-index 置顶、 position: fixed 覆盖全页面

但是直接原生 DOM 会导致 重排、重绘 ,性能耗散!

所以在 React 和 Vue 的框架层面做了处理,需要让模态框挂载位置正确的同时能走diff判断进行性能优化,防止重复 mount,unmount 导致的销毁与重建,还会减少 CLS 提升 SEO

React - Portal传送门

ReactDOM.createPortal( <Modal />, document.body )

在组件关系逻辑树 Fiber Tree 中,管理组件关系和生命周期等等

模态框作为一个组件即一个 Fiber 节点进行插入

App └── Page └── Modal

但是在 DOM 中模态框并不是Page的子组件,而是直接挂在 body 下面的

<body> ├── #root │ └── Page └── Modal

Portal 改变了 DOM 的插入位置

这样就实现了 模态框仍然会在 React Render 中进行 虚拟diff 进行性能优化

Vue - Teleport瞬移

直接写进了语法层

<Teleport to="body"> <Modal v-if="open" /> </Teleport>

本质和 React Portal 基本一致

  • 虚拟节点标记 teleport
  • patch 阶段插入到指定容器
  • diff 范围仅限在 Teleport 子树中

直接JS操作

那么其实我们要优化的就是避免重复的创建

所以可以通过单例模式在全局作用域下面进行 let 的内存管理,防止重复的GC回收和创建导致的重排重绘

let modalEl function getModal() { if (!modalEl) { modalEl = document.createElement('div') modalEl.className = 'modal' document.body.appendChild(modalEl) } return modalEl }
http://www.cnnetsun.cn/news/23661.html

相关文章:

  • 鸿蒙投屏工具HOScrcpy深度实战:突破传统镜像的进阶玩法
  • 基于MATLAB的胃癌检测实现方案
  • 图像分割新利器:预训练骨干网络快速构建高质量分割模型
  • 论文重复率 / AI 率双超?paperxie 的 “精准优化” 功能:如何在不碰专业内容的前提下过检测?
  • 36、Linux 系统安全防护全攻略
  • React Native语音识别终极指南:让你的应用听懂用户心声
  • 水银温度计淘汰不用慌!健康一体机:测温只是开始,多项目检测才是核心
  • 突然发布!GPT-5.2深夜来袭,3个版本碾压人类专家,打工人该怎么选?
  • 字符串特性解析:Python不可变性引发的错误
  • 【万字长文】大模型与智能体本质区别解析:系统级架构与模型升级的对比与应用指南!
  • 从零开始构建Agentic RAG:结合RAG与AI Agent的大模型新范式实战指南!
  • EasyPoi 数据脱敏
  • 收藏必备!GPT-5.2震撼发布:OpenAI反击战,职场程序员的AI新神器
  • 3步上手Sparta:让网络安全渗透测试变得像玩游戏一样简单
  • Android媒体画廊应用终极指南:轻量级隐私保护的完美选择
  • FT8371A,FT8371B,FT8371C 次边同步整流芯片典型应用资料分析
  • 智慧文旅信创落地新标杆:四川省文旅厅完成MySQL 5.7平滑替换,筑牢省级管理平台自主可控底座
  • 7、Unix/Linux 网络监控与日志管理全解析
  • 11、数据备份与系统安装全攻略
  • 12、Unix/Linux 系统设置与生产准备全攻略
  • 5步掌握网页数据采集:零代码工具完全操作手册
  • 15、测试系统与“安全”系统
  • TradingAgents-CN实战指南:从零开始构建你的AI交易智能体团队
  • 18、系统与网络安全全解析
  • 检索增强生成(RAG)在Java应用中的实践指南
  • 机器学习测试神器TensorFlow Model Analysis实战
  • Monitorian:多显示器亮度调节的终极解决方案,一键掌控视觉舒适度
  • 2025 主流 GEO 优化服务商 TOP4,助力 ToB 精准选型
  • 影刀RPA×AI双剑合璧!小红书商品图片批量上传,效率提升50倍![特殊字符]
  • 从中国出发,向世界展示!AI开发者亚马逊云科技狂欢专属攻略!