前端的社区非常活跃,各种底层的框架和库层出不穷,而在这些框架和库的基础上也涌现出了一批又一批用各自的思想来实现的 UI 组件。前端本身的工作领域就专注在 UI 展现层上,一套好用的 UI 组件能提升团队的工作效率,但是这些组件的通用性和移植性并不强。
W3C 提出来的 Web Components 标准化的组件化方案,尝试去解决上面提到的各自为战的问题,在其刚提出来的那段时间确实火了一阵子,Google 的开发团队也在此基础上推出了基于 Web Components 的框架 Polymer。
先来看看使用 Web Components 如何定义一个组件。
<hello-world>
<!-- Shadow dom -->
<style>
.para { background: orange; color: #fff;}
</style>
<div>
<button onclick="handleClick()">Say Hello</button>
<p class="para"></p>
</div>
<script>
var handleClick = function(event) {
window.event.target.nextElementSibling.textContent = 'Hello World!';
};
</script>
<!-- /Shadow dom -->
</hello-world>