前端框架分享

前端 web 开发中会遇到很多框架,今天主要介绍三种:angular.js、react.js、vue.js(无排序之分)

angular.js

angularJS 是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。

angularJS 的特性如下:

  1. 良好的应用程序结构
  2. 双向数据绑定
  3. 指令
  4. HTML 模板
  5. 可嵌入、注入和测试

优点:

  1. 模板功能强大丰富,自带了极其丰富的 angular 指令。
  2. 是一个比较完善的前端框架,包含服务,模板,数据双向绑定,模块化,路由,过滤器,依赖注入等所有功能;
  3. 自定义指令,自定义指令后可以在项目中多次使用。
  4. ng 模块化比较大胆的引入了 Java 的一些东西(依赖注入),能够很容易的写出可复用的代码,对于敏捷开发的团队来说非常有帮助。
  5. angularjs 是互联网巨人谷歌开发,这也意味着他有一个坚实的基础和社区支持。

缺点:

  1. angular 入门很容易 但深入后概念很多, 学习中较难理解.
  2. 文档例子非常少, 官方的文档基本只写了 api, 一个例子都没有, 很多时候具体怎么用都是 google 来的, 或直接问 misko,angular 的作者.
  3. 对 IE6/7 兼容不算特别好, 就是可以用 jQuery 自己手写代码解决一些.
  4. 指令的应用的最佳实践教程少, angular 其实很灵活, 如果不看一些作者的使用原则,很容易写出 四不像的代码, 例如 js 中还是像 jQuery 的思想有很多 dom 操作.
  5. DI 依赖注入 如果代码压缩需要显示声明.

vue.js

其实 Vue.js 不是一个框架,因为它只聚焦视图层,是一个构建数据驱动的 Web 界面的库。

Vue.js 通过简单的 API(应用程序编程接口)提供高效的数据绑定和灵活的组件系统。

Vue.js 的特性如下:

  1. 轻量级的框架
  2. 双向数据绑定
  3. 指令
  4. 插件化

优点:

  1. 简单:官方文档很清晰,比 Angular 简单易学。
  2. 快速:异步批处理方式更新 DOM。
  3. 组合:用解耦的、可复用的组件组合你的应用程序。
  4. 紧凑:~18kb min+gzip,且无依赖。
  5. 强大:表达式 & 无需声明依赖的可推导属性 (computed properties)。
  6. 对模块友好:可以通过 NPM、Bower 或 Duo 安装,不强迫你所有的代码都遵循 Angular 的各种规定,使用场景更加灵活。

缺点:

  1. 新生儿:Vue.js 是一个新的项目,没有 angular 那么成熟。
  2. 影响度不是很大:google 了一下,有关于 Vue.js 多样性或者说丰富性少于其他一些有名的库。
  3. 不支持 IE8:

react.js

React 主要用于构建 UI。你可以在 React 里传递多种类型的参数,如声明代码,帮助你渲染出 UI、也可以是静态的 HTML DOM 元素、也可以传递动态变量、甚至是可交互的应用组件。

React 特性如下:

  1. 声明式设计:React 采用声明范式,可以轻松描述应用。
  2. 高效:React 通过对 DOM 的模拟,最大限度地减少与 DOM 的交互。
  3. 灵活:React 可以与已知的库或框架很好地配合。

优点:

  1. 速度快:在 UI 渲染过程中,React 通过在虚拟 DOM 中的微操作来实现对实际 DOM 的局部更新。
  2. 跨浏览器兼容:虚拟 DOM 帮助我们解决了跨浏览器问题,它为我们提供了标准化的 API,甚至在 IE8 中都是没问题的。
  3. 模块化:为你程序编写独立的模块化 UI 组件,这样当某个或某些组件出现问题是,可以方便地进行隔离。
  4. 单向数据流:Flux 是一个用于在 JavaScript 应用中创建单向数据层的架构,它随着 React 视图库的开发而被 Facebook 概念化。
  5. 同构、纯粹的 javascript:因为搜索引擎的爬虫程序依赖的是服务端响应而不是 JavaScript 的执行,预渲染你的应用有助于搜索引擎优化。
  6. 兼容性好:比如使用 RequireJS 来加载和打包,而 Browserify 和 Webpack 适用于构建大型应用。它们使得那些艰难的任务不再让人望而生畏。

缺点:

  1. React 本身只是一个 V 而已,并不是一个完整的框架,所以如果是大型项目想要一套完整的框架的话,基本都需要加上 ReactRouter 和 Flux 才能写大型应用。

各类框架典型代表作请戳 这里
【转自】 The~Only

作者

The~Only

发布于

2017-10-17

更新于

2015-01-01

许可协议

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.