菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
2188
0

shadow DOM 浅析

原创
05/13 14:22
阅读数 3287

引言

Shadow-dom 游离在 DOM 树之外的节点树,但是他的创建基于普通 DOM 元素(非 document),并且创建后的 Shadow-dom 节点可以从界面上直观的看到。更重要的是,Shadow-dom 具有良好的密封性。换而言之,它具有某种意义上的接口能力,是浏览器提供了一种封装功能。典型场景,即使用video标签,在src属性填写视频地址,即可播放视频

目的

  • 让浏览器开发者有意隐藏DOM结构
  • Shadow DOM 为Web组件中的 DOM和 CSS提供了封装

定义

  • shaw-dom浏览器的一种能力
  • 允许浏览器渲染文档时向其中的Dom结构中插入一棵DOM元素子树
  • 但这棵子树并不在主DOM树中

概念

  • document 正常文档
  • shadow-host 对于一个内部有 shadow-dom 的元素而言,它必然需要一个宿主元素
  • shadow-root 通过 createShadowRoot 返回的文档片段被称为 shadow-root
  • contents 各子组件的 DOM 的具体实现

规则

  • Shadow DOM 必须附加在一个元素上
  • 可以是HTML文件中的一个元素,也可以是脚本中创建的元素
  • 以是原生的元素,如<div>、<p>;也可以是自定义元素如 <my-element>

后记

  • vue,react 中的web组件与自定义组件,可以用接口标签的形式注入Dom文档源于此

发表评论

0/200
2188 点赞
0 评论
收藏
为你推荐 换一批