Web Component总结
2015-08-18 19:07
197 查看
Web Component
一个Web组件通常由四个部分组成:模板、Shadow DOM、自定义元素与打包,其中Shadow DOM解决了组件在页面中的封装问题
Shadow DOM
有shadow Host(影子宿主)、shadow root(影子子树根节点)、 shadow Boundary(影子边界)、和shadow DOM nodes(影子节点)几个概念,其中后三者组成shadow DOM Subtrees(影子子树)
影子宿主是影子子树的依托,属于文档树
影子根节点对象提供常规DOM操作函数(getElementByID…)获取影子子树节点
来自页面并通过 标签添加到 shadow DOM 的内容被称为分布节点
不足
外部不能获取DOM和操作DOM
对屏幕阅读器、搜索引擎、浏览器扩展程序等不友好
优势
隐藏实现细节
实现细节被封装在元素的shadow root节点中
避免非预期的修改
外界无法获取到COM, 外部CSS样式对DOM无效
除非非常明确指定,如采用伪类:::shadow or /deep/, /deep/能穿透多层影子边界
Shadow DOM中的css也无法应用在主文档上
可以通过:host()/::content/:host-content()等特殊的方式修改组件的外观
template
惰性,不会提前加载
在使用前,模板内部的各种脚本不会运行、图像不会加载等
内容不可见
无法使用选择器获取到
可被放置于任意位置
分布式节点的使用不统一,如:
template中应用CSS需要使用到::content 伪类才能访问到。
一个Web组件通常由四个部分组成:模板、Shadow DOM、自定义元素与打包,其中Shadow DOM解决了组件在页面中的封装问题
Shadow DOM
有shadow Host(影子宿主)、shadow root(影子子树根节点)、 shadow Boundary(影子边界)、和shadow DOM nodes(影子节点)几个概念,其中后三者组成shadow DOM Subtrees(影子子树)
影子宿主是影子子树的依托,属于文档树
影子根节点对象提供常规DOM操作函数(getElementByID…)获取影子子树节点
来自页面并通过 标签添加到 shadow DOM 的内容被称为分布节点
不足
外部不能获取DOM和操作DOM
对屏幕阅读器、搜索引擎、浏览器扩展程序等不友好
优势
隐藏实现细节
实现细节被封装在元素的shadow root节点中
避免非预期的修改
外界无法获取到COM, 外部CSS样式对DOM无效
除非非常明确指定,如采用伪类:::shadow or /deep/, /deep/能穿透多层影子边界
Shadow DOM中的css也无法应用在主文档上
可以通过:host()/::content/:host-content()等特殊的方式修改组件的外观
template
惰性,不会提前加载
在使用前,模板内部的各种脚本不会运行、图像不会加载等
内容不可见
无法使用选择器获取到
可被放置于任意位置
分布式节点的使用不统一,如:
template中应用CSS需要使用到::content 伪类才能访问到。
相关文章推荐
- POJ 3262 Protecting the Flowers
- HDU 1507 Uncle Tom's Inherited Land*(行列匹配||棋盘覆盖||黑白染色||奇偶匹配(1X2的矩形覆盖))
- Android架构
- category和protocol 第五天稍晚了一些。
- L轻松学习inux教程5 知识与学习bash
- 编码解码过程中的信息丢失现象
- 数学F - The Snail
- c# 下三角实现 九九乘法口诀表
- 【sphinx】Sphinx在linux上的安装配置
- nyoj 36 最长公共子序列【LCS模板】
- maven实战笔记 - maven 安装配置
- 书摘---网络搜集整理 (1--10)
- jS数组
- Mysql引起的spring事务失效
- 洛谷1001 A+B Problem
- 时间转换
- 第四周第二天
- java垃圾回收之Minor GC和Major GC
- Java关键字static、final使用小结
- Activity的生命周期