一, 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:
二, angularJS:
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 依赖注入 如果代码压缩需要显示声明.
三, React:
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 才能写大型应用.
来源: http://www.bubuko.com/infodetail-2614968.html