几个前端UI框架的的比较

jopen 9年前

刚开始接触HTML刚开始接触JS我也不懂就看了下- 正好我也在考虑怎么用HTML来搭我的APP UI。作为初学者,我发现Amaze UI是中文的,觉得对初学者看起来会更简单 - 尤其对HTML CSS等一窍不通,很快有人推荐了Ratchet,看了下感觉用来做手机APP确实很简单的样子.. 开始纠结了.. 跟公司大神讨教了下什么是UI框架以及一些主流的框架区别 优劣势,以及我们一些项目上使用的内容后,大神总结出了以下内容,受益匪浅 - 作为答案有点长,以博文形式发出来供大家一起探讨下:

------- 以下分割线 --------

IoTgo 用的是 Bootstrap( http://getbootstrap.com ),原先是 推ter 内部的一个 CSS 框架,后来开源放到 Github 上,成了 Github 上最热门的项目。Bootstrap 在 3.0 版本之前,都是以桌面优先,在 3.0 版本后,采用移动优先,即很好的支持移动平台,然后才考虑更好的支持桌面。所以 Bootstrap 对手机的支持也很好。

Foundation(foundation.zurb.com) 是设计公司 zurb.com 推出的开源 CSS 框架,在 CSS 框架领域是目前唯一能跟 Bootstrap 的竞争的项目。Foundation 的可定制性更好一些(因为是设计公司的产品,要应对各种客户需求),但入手难度也高一些。对于很多 Web 项目开发者而言,他们需要的就是一套简单快捷的 UI,对其美观性、可定制性要求不是太高,所以目前相对来讲 Foundation 没有 Bootstrap 热门。

答案中推荐的Ratchet如何:

Ratchet 之前也是 推ter 内部的一个 CSS 框架,后来也是开源到 Github 上,目前是作为 Bootstrap 的子项目存在( http://blog.getbootstrap.com/2014/04/02/ratchet-2-0-2-released/ ),开发 Ratchet 和 Bootstrap 的基本就是同一拨人。Ratchet 一开始就以移动为先,预先提供了很多移动平台的常见 UI 工具,比如底部 Tab 标签栏、顶部标题及后退按钮、滑动的侧边栏等等——Bootstrap 也有,只是很多以插件形式存在,又或者需要自己做一些修改,不像 Ratchet 默认就有。

如果是做一个小项目,而且只以手机 App 的形式存在,可以考虑先用 Ratchet,如果同时兼容桌面,Bootstrap 更好一些。而且 Bootstrap 更新的速度更快,马上 4.0 版本就要出来了,有很多针对移动平台优化的特性,而 Ratchet 已经快一年没更新了。

另外,目前的移动 CSS 框架(或者更合适的说,UI 框架),还有 非死book 的 React( http://非死book.github.io/react/ ),Google 的 Angular Material( https://material.angularjs.org ),Telerik 的 Kendo UI(www.telerik.com/kendo-ui),还有预先捆绑了 Cordova 的 Ionic Framework(ionicframework.com)等等。大家的评价大致是:

  • React:性能很好,因为采用了 Virtual DOM,但没有默认支持 2 way data binding(双向数据绑定),程序员需要自己做更多的工作来通过 UI 获取用户的输入
  • Angular Material:前景非常好,只是目前处于 pre-release 阶段(代码兼容性和稳定性都不是很好)。Angular目前几乎已经是前台 MVC 框架的事实标准(大约 70% 以上的占有率,其他的还有 Ember、Meteor、Backbone等等),Angular Material 基于 Google Material Design 开发,默认支持 Angular,因而在 UI的美观型和开发效率上都比较好。但性能是个问题,解决性能问题,需要程序员自己对代码做优化
  • Kendo UI:非常完备的 UI 框架,但是是商业版(前段时间将部分核心模块开源了)。开发商业 Web 或移动产品的企业更倾向Kendo UI 一些,因为可以得到很好的技术支持(当然要花钱)。Angular 热门知会,Telerik 也升级了 Kendo UI,使其能够较好的跟 Angular 交互——Kendo UI 是 UI,Angular 是前台代码逻辑
  • Ionic Framework:目前非常热门,因为他在 Angular 的基础上开发了支持移动平台的 UI Widget(UI组件)。Ionic Framework 搭好了整套移动开发环境(指的是 App 开发,不是网站移动版)、UI 套件、JS框架(Angular),因而在 2014 年获得巨大的社区反响。被誉为最有前景的移动开发框架(不仅仅是 UI 了)。

我个人对 Angular 比较热衷,所以都会选择能够很好跟 Angular 交互的 CSS/UI 框架——一般来说,如果是纯 CSS 框架,那么跟任一一个 MVC 框架(比如 Angular、Ember)都可以很好的配合;如果是 UI 框架,可能会有一些冲突。

之前我们的智能开关手机 App 是基于 Ionic Framework 来开发的,后来切换到 Angular Material。一个是 Ionic Framework 虽然入手简单,但出现 Bug 我搞不清楚该怎么修改(需要花时间研究 Ionic Framework 的内部工作机制),二是我认为 Material Design 会成为 UI 设计的主流思想,Angular Material 会很快成熟起来。

来自:http://segmentfault.com/blog/freezingzz/1190000002550240