Intact将组件分为两类:可复用组件和不可复用组件。可复用组件很好理解,它是构成页面的基本元素。但是对于页面级组件,它一般是不可复用的。实际开发中,各个页面之前又存在相似性。此时如果将页面间通用逻辑和视图提炼成组件然后供子页面继承,便可以最大限度地复用代码。同时派生出的子组件拥有整个页面逻辑和视图的控制权,可以摆脱由组合方式实现页面而不得不进行繁琐的组件间通信的问题。
示例:[code]var Layout = Intact.extend({
template: '
\
\
Extendable and Reactive Component \
\
',
\
\
\
\
{self.get("count")}
\
defaults: function() {
return {count: 0};
}
});
var Page = Layout.extend({
template: '
{parent()}\
\
add: function() {
this.set('count', this.get('count') + 1);
}
});
Intact.mount(Page, document.getElementById('app'));[/code]v2.0相比于v1.0做了以下改进:
底层virtual dom库fork自最快的虚拟DOM库之一(inferno)进行重写,大大提高了渲染效率
更完善的组件生命周期,新增_mount挂载后这一关键生命周期
更丰富的指令,新增v-model,v-raw等指令
派生组件中的模板,可以直接通过parent引用到父类组件的模板
借鉴Vue的动画设计思想,重写了Animate组件用于实现复杂的动画,并且在动画连贯性上做了许多改进
新增组件渲染成字符串(toString)和混合(hydrate)接口,用于实现前后端同构
更充分的兼容性测试,最低支持到IE8
其他大量细节修改和Bug修复
软件详情:http://javey.github.io/intact
下载地址:http://git.oschina.net/javey/Intact
来自:开源中国社区

