很简单的例子

//计数加一
count ++
//更新ui
jQuery('#count').text(count);
Copy Code 

相信几乎所有前端工程师都会写过上面这样的代码,更新数据,然后更新ui,行云流水般的。 然而也是相当一部分内测bug的起源,数据删除了,ui里的计数没有变,或者ui变了,数据里确没有删除。而在逻辑复杂的应用里,更是很难保证不出这种低级错误。

其实我们可以通过自定义事件,这样重写

this.data_bind('count', 'change', function(count)
{
    //更新计数
    jQuery('#count').text(count);
});
....
 
this.data_bind('count', 'change', function(count)
{
    //刷新分页
    refresh_pager(count);
});
 
this.set_data('count', this.get_data('count') + 1);
Copy Code 

上次D2上听金大为讲模板技术,当时感觉耳目一新,最近边写边考虑这些新思想,其实使用现有的自定义事件要简单的多,而且灵活性,适用性更好。

用过flex的同学看完这篇文章肯定会说:靠,你们写js的还真是原始社会。。