决不推荐使用EmberJs的理由
绝不推荐使用EmberJs的理由
理由很简单,EmberJs 必须把整个页面都用EmberJs写,不能自己写内容在Body中。看个最简单的例子:
<!doctype html> <html> <head> <meta charset='UTF-8'/> </head> <body> <h1>页头</h1> <script type="text/x-handlebars" data-template-name='index'> Hello </script> <div>页尾</div> <script src="../js/libs/jquery-1.11.0.js"></script> <script src="../js/libs/handlebars-v1.3.0.js"></script> <script src="../js/libs/ember.js"></script> <script src="../js/libs/ember-data.js"></script> <script src="../js/libs/localstorage_adapter.js"></script> <script type="text/javascript"> window.MyApp=Ember.Application.create(); MyApp.ApplicationController=Ember.Controller.extend({ }) </script> </body> </html>
这个例子显示结果就是:
页头 页尾 hello
啥?hello 不是在页头和页尾之间?是的,因为EmberJS用的是script方式的模板方式,emberJs没有一种方式把模板插入到传统的html的指定的位置。
这样就带来极大的不便: 所有以前做的html内容,都得改写成EmberJS的模板方式。假如现有的项目想用emberjs ,那简直就是灾难,要改所有的文件!!!!因为,一般的项目都会自己有一个HTML的布局文件,这个布局文件影响到整个项目的页面,如果要用emberjs,首先就要改这个布局文件,带来的连锁反应就是各个内容的页面也得跟着改成emberjs 的,而且还得一次性都改完才能发布,而不能渐进式的改动。这点与backbone,AngularJs 比,简直就是致命的缺点。
记得看过一篇评测文章,说emberJs 最好。@#@¥@$.....我想,写这个评测的人,不是脑子进水了,就是emberJS的人自己吹的。害我多费了一个星期去研究。。。画个圈圈,咒几句。。。