Skip to content

Latest commit

 

History

History
47 lines (31 loc) · 1.71 KB

10.精读Web Components的困境.md

File metadata and controls

47 lines (31 loc) · 1.71 KB

010.精读 Web Components 的困境.md

Polymer 2.0 更新

  • Shadow DOM v1 代替 Polymer.dom Shady DOM 从 Polymer 中分离出来。
  • 使用标准 ES6 类 和 Custom Elements 自定义元素
  • 数据系统的改进和生命周期的变更

Web compoent 的思考

  • Web component 的支持在 11 年-17 年内没有进展

  • web 组件对 JS 的实现有强依赖 -- Custom Elements 是 JS 脚本的一部分 -- HTMLTemplates 为了被 JS 使用 -- Shadow DOM 也需要配合 JS 使用 -- 只有 HTML imports 可以脱离 JS 使用

  • Web component 操作 DOM -- 属性都是字符串 -- 元素的内容模型比较奇怪

  • 突破限制使用不同的方法来传递数据

  • CSS 作用域 (CSS Module 有相关作用域书写)

Web component 作者提出的回应

  • Web component 需要被浏览器支持, 所以推动速度较慢(兼容,成熟方案)
  • React
  • DOM 抽象(React/JSX) 但旧设备 加载大 js 包性能不够好,应该按需加载做拆分
  • JSX/Virtual DOM
  • Polymer 数据绑定
  • 组件处理字符串属性

浏览器标准和框架

  • 对标准的推动必须要谨慎 ,如果 web 组件作为浏览器底层特性就不应该跟流行框架做比较,而是作为规范进行约束
  • API 偏底层操作,易用性不够,对浏览器层面的支持得加深

不需要 vendor 的自定义组件间调用(三方依赖包互相引用冲突问题)

Web Component 标准讨论仍然很热烈(html 和 css 能力不足),想让 JS 弥补不足

summary

  • Web component 如果要做为浏览器底层特性不应该跟应用层框架比较,价值和应用框架不一样,期待应用层可以基于 Web components 做更多的实现, 让组件超越框架,能在不同技术栈使用。