
11.7 手写 Modal 与 Portal
一个合格的 Modal 要处理五件事——「用 Portal 挂到 body」「焦点管理(移入 + 陷阱 + 归还)」「ESC 关闭」「滚动锁定(并还原)」「无障碍属性(role="dialog" + aria-modal)」。

一个合格的 Modal 要处理五件事——「用 Portal 挂到 body」「焦点管理(移入 + 陷阱 + 归还)」「ESC 关闭」「滚动锁定(并还原)」「无障碍属性(role="dialog" + aria-modal)」。

Portal 的本质是「DOM 位置搬家,React 树位置不变」——它解决了「脱离父级裁剪」的问题,却引出「层级(z-index)失控」的新问题;治理层级的正解是「分层基数 + 栈式申领 + 固定 Portal 容器」,更现代的做法是直接上浏览器的 top layer(

压缩、裁剪、加水印、抠图、拼接都在本地完成。不限张数、不限次数,图片不会传到服务器。

三个「特殊组件」分别解决三类问题——Fragment 解决「需要多个根节点又不想多一层 DOM」、Portal 解决「弹层需要脱离父级容器」、StrictMode 在开发环境暴露潜在的副作用问题。
最新评论
读过书不知道欧·亨利的人少。教科书上选文有
这小生活不错呀
不错,必须顶一下!
看着你还在坚持,很好
看来忙了也没时间更新博客了
NIce。学习了。。。。
网站不错!!!!
简洁实用,好文章!