模板函数编程
上面的例子都是通过定义模板然后编译成模板函数,其实知道了模板函数的原理后,我们也可以直接定义模板函数,而不需要经过编译处理。由于不需要编译,所以你没必要遵循模板最后必须定义一个标签的约束,而只需要返回是个合法的虚拟DOM就行。
Intact内部
Animate
组件,就是直接定义的模板函数。
例如:
Intact.extend({
template: function(self, Vdt) {
var h = Vdt.miss.h;
// 我们根据button是否传入了href属性来决定是否使用a标签
if (self.get('href')) {
return h('a', self.get(), self.get('children'));
} else {
return h('button', self.get(), self.get('children'));
}
},
defaults: function() {
return {
href: 'javascript:;',
children: 'hello'
}
}
});