前端 JavaScript 框架对比
目前比较主流的几个浏览器客户端 JavaScript 框架对比:
从左到右是框架提供的功能特性由少到多,对应用开发的支持逐渐丰富;
从下到上是框架设计复杂度/上手难度由简单到复杂。
AngularJS v.s. EmberJS
这里重点对比 EmberJS 和 AngularJS 的差异:
AngularJS | EmberJS | |
模版 | 通过 HTML 标签 | 自定义标签(字符串) |
社区支持 | 个人 | |
性能 | 略好 | 略差 |
标准化 | 可能性较大 | 可能性较小 |
这两者都是浏览器客户端的 MVW 框架,从使用上看对开发的要求是基本相近的,都需要开发者以 MVC 的视角去设计前端(而不是针对页面、DOM 进行实现),这和服务器端的设计思路非常类似,有助于复杂应用进行模块化开发。细节上 AngularJS 的设计也更贴近 Java 风格的开发者(比如依赖注入、路由 API 等)。
AngularJS 使用须知
开发者在使用 AngularJS 时也需要使用和这个框架匹配的开发方式:
- 非常适合于 SPA(Single Page-application),一个应用只有一个页面 (DOM),例如 Gmail
- 标准分层(视图模版、控制器、服务),以“请求分发”为起点来规划模块
- 优先使用 ng 模块实现需求(比如路由模块、动画模块),而不是使用其他库(jQuery)
AngularJS 与 FreeMarker
在生成 ng 模版时服务器端最好也是用模版引擎(例如 FreeMarker)来处理,基于 HTTP 请求-响应的交互过程如下:
P.S. 服务器端选择 Node 可能更适合。