博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web Component总结
阅读量:5262 次
发布时间:2019-06-14

本文共 739 字,大约阅读时间需要 2 分钟。

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 伪类才能访问到。

转载于:https://www.cnblogs.com/mininice/p/webcomponent.html

你可能感兴趣的文章
转:Web 测试的创作与调试技术
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
线程androidAndroid ConditionVariable的用法
查看>>
转载:ASP.NET Core 在 JSON 文件中配置依赖注入
查看>>
socket初识
查看>>
磁盘测试工具
查看>>
代码变量、函数命名神奇网站
查看>>
redis cli命令
查看>>
Problem B: 占点游戏
查看>>
python常用模块之sys, os, random
查看>>
HDU 2548 A strange lift
查看>>
Linux服务器在外地,如何用eclipse连接hdfs
查看>>
react双组件传值和传参
查看>>
[Kaggle] Sentiment Analysis on Movie Reviews
查看>>
价值观
查看>>
mongodb命令----批量更改文档字段名
查看>>
使用 SharedPreferences 分类: Andro...
查看>>
TLA+(待续...)
查看>>
题解: [GXOI/GZOI2019]与或和
查看>>