Vue.js 与其他前端框架的不同
一、Vue.js 的性质
Vue.js 聚焦于视图层,通过API 提供数据绑定的组件,是一个构建数据驱动的 Web 界面的库,不是一个前端框架。
Vue.js ① 具有轻量级的特点,方便做数据绑定;② 自带一套指令(也可以自定义扩充)通过表达式的值控制DOM 的状态;③ 方便通过加载插件扩充功能。适用于富交互、状态机一类的前端 UI 界面。
二、Vue.js 与 AngularJS、React、Knockout、Ractive.js、Polymer、Backbone.js、Riot 的区别
前端框架 | 异同点 |
AngularJS (Google) | 相同点: ① 支持指令(内置/自定义); ② 支持过滤器(内置/自定义); ③ 支持双向绑定; ④ 不支持底端浏览器(≤ IE8)。 不同点: AngularJS 依赖对数据做脏检查,所以 watcher 越多速度越慢,而Vue.js 使用基于依赖追踪的 watcher,并且使用异步队列更新,所有数据都是独立触发。 |
React (Facebook) | 相同点: ① React 采用特殊的JSX 语法,对文件内容有一些约定,需要编译后使用; ② 中心思想:一切都是组件,组件实例之间可以嵌套; ③ 提供何来的钩子函数,允许开发者定制化地处理需求; ④ 核心包不内置 AJAX、Router 等功能,通过插件等方式加载、扩展; ⑤ 组件开发中支持 mixins 的特性。 不同点: ① React 依赖 Virtual DOM,会对渲染出的结果做脏检查,而 Vue.js 使用的是 DOM 模板; ② Vue.js 在模板中提供指令、过滤器用于操作 DOM。 |
Knockout | 相同点: ① 用到了数据和 DOM 元素绑定,追求 UI 和数据关联,自动刷新; ② DOM 元素基于模板; ③ 支持依赖跟踪。 不同点: ① Knockout 的所有可观测属性都需要手动用 obserable 方法来初始化,并且需要用函数调用的方式操作数据; ② Knockout 没有 ViewModel 之间作用域的继承。 |
Ractive.js | 相同点: 通过实例化一个(Ractive)类,传递元素、数据和模板; 不同点: Ractive 用字符串模板,数据模型用 get 和 set 代码体积较大; |
Polymer | 相同点: ① 支持数据绑定; ② 约定了文件或元素的组织方式,Polymer 中把 template-script 放在一个文件里。 不同点: ① Polymer 推崇 WebComponennt 标准化,依赖浏览器环境的支持,如果浏览器不支持,则需要加载相应的 Polyfill; ② Polymer 的代码体积大于 Vue.js |
Backbone.js | 不同点: ① Vue.js 专注于 View,而 Backbone 包含了 View、Collection、Model 及 Router; ② Vue.js 拥有数据绑定的特性,而 Backbone 需要手动通过事件操作 DOM。 |
Riot | 相同点: ① 轻量级; ② 提供自定义的生命周期钩子,方便使用; ③ 与主流工具集成度比较高,支持与各种预编译工具集成; ④ 组件化思想,并且将 HTML、CSS、JS 集成在一个组件中; ⑤ 只更新变化了的元素。 不同点: ① Riot 内置路由功能、设计支持 Virtual DOM; ② Riot 支持自定义标签,将标签内容放在 .tag 文件中,使用 script 特殊的 type="riot/tag" 加载编译器; ③ 推崇 Web Component 标准化; ④ Riot 支持服务端渲染; ⑤ 默认单向绑定。 |
更多web前端开发知识,请查阅 HTML中文网 !!
以上就是vue.js与其它框架的不同是什么?的详细内容,更多请关注易知道|edz.cc其它相关文章!