Web Component是Web开发的未来。Polymer, X-Tag等Web Component框架也越来越火,但由于其浏览器支持度不高,我们仍缺少将Web Component应用到项目中的机会。
但是,虽然Web Component的支持度不高,但并不代表我们不能在现有的项目中使用组件化开发思想。
Nova.js可以帮助我们在项目中使用Web组件化的方式进行开发,同时,支持移动端所有主流浏览器及PC端IE9+及其它主流浏览器。
Web Component is production ready。 Are you ready?
让我们通过Tab组件一起看看,使用Web Component好在哪儿。
使用AmazeUI的Tab组件:
<div class="am-tabs" data-am-tabs="{noSwipe: 1}" id="doc-tab-demo-1">
<!-- Nav -->
<ul class="am-tabs-nav am-nav am-nav-tabs">
<li class="am-active"><a href="javascript: void(0)">Home</a></li>
<li><a href="javascript: void(0)">Profile</a></li>
<li><a href="javascript: void(0)">Message</a></li>
</ul>
<!-- panel -->
<div class="am-tabs-bd">
<div class="am-tab-panel am-active">
...
</div>
<div class="am-tab-panel">
...
</div>
<div class="am-tab-panel">
...
</div>
</div>
</div>
使用Nova.js实现的Tab组件:
<nova-tab default-style swipable="false" loop>
<span class="tab">Home</span>
<span class="tab">Profile</span>
<span class="tab">Message</span>
<div>...</div>
<div>...</div>
<div>...</div>
</nova-tab>
<script>
var novaTab = document.querySelector('nova-tab');
novaTab.next(); // 翻到下一页
</script>
Web Component优势:
ul
, javascript:void(0)
等组件内部实现依靠的结构。Nova.js提供以下的功能,方便开发者开发组件:
定义Nova-tab
<!-- main.html -->
<template is="dom-module">
<style>
.tab-navs {/**/}
</style>
<template>
<ul class="tab-navs">
<content select=".tab"></content>
</ul>
<ul class="tab-panels">
<content></content>
</ul>
</template>
<script>
Nova({
is: 'nova-tab',
props: {
},
createdHandler: functino() {
// ...
}
});
</script>
</template>
使用nova-tab
<!-- index.html -->
<link ref="import" href="nova-tab/main.html" />
<nova-tab></nova-tab>
Web Component是由以下几个标准组成:
通过Polyfill,我们可以在所有移动端浏览器,和IE9+等PC浏览器中使用Custom Element
。
但是其它三个标准仍未达到production ready的状态。
Nova.js:
.html
文件中定义组件的样式,模板,和行为。因此,虽然Web Component这组标准的支持度不高,我们仍然可以使用它的思想,来开发组件。抢先体验Web Component组件开发方式的快感!
Nova.js是根据Polymer设计而来。其主要区别有:
Nova.js的主要优势就是小巧、专注于开发组件。现在有许多Web应用框架,如React、Vue.js、Angular等。但是它们的问题是太庞大。当我们想在一个很简单的页面(例如活动宣传页)中使用现成的组件时,如果还要引入React,Vue.js等框架的基础库,那么成本并不低。
使用Nova.js开发组件,不管未来页面使用的是什么Web框架,或者是一个简单的静态页面。都能引入小巧的组件。
NovaUI是基于Nova.js的高性能移动端组件库。欢迎大家抢先体验Web Component的开发方式!
请见README的说明
Nova.js官网
NovaUI官网
Fork Nova.js
QQ讨论群:486672012
扫码关注w3ctech微信公众号
共收到0条回复