Vue
- 更加轻量 20kb min + gzip
- 渐进式框架
- 响应式的更新机制(视图根据数据的改变自动刷新)
- 学习成本低(基于 html 的模板语法)
React
React 和 Vue 的相似之处
- 都有组件化开发和 Virtual DOM
- 都支持 props 进行父子组件间的数据通信
- 都支持数据驱动视图,不直接操作真实 DOM,更新状态数据,界面就自动更新
- 都支持服务器端的渲染
- 都有支持 native 的方案,React 的 React Native,Vue 的 Weex
- 将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库
差异
- 数据绑定:Vue 实现数据的双向绑定;React 数据的流动是单向的
- Vue 使用模板语法 Templates,单文件组件,CSS 组件作用域;React 所有组件的渲染功能都依靠 JSX,JSX 是使用 XML 语法编写 JavaScript 的一种语法糖,一切皆js
- 状态变化:state 对象在 React 中使用 setState 方法更新状态;Vue 中,state 对象不是必须的,数据由 data 属性在 Vue 对象中管理
- Virtual DOM 不一样:Vue 可以自动追踪组件中的状态变化,重新渲染更新的组件;对 React,每当应用的状态发生改变时,全部组件都会重新渲染,React 需要手动触发
shouldComponentUpdate
进行控制 - React 严格上只针对 MVC 模式的 view 层;Vue 则是 MVVM 模式
- Vue 推荐实现偏视图表现的组件;React 推荐实现偏逻辑类的组件
jquery
- jquery 可以更方便的选取和操作 DOM 对象,数据和视图是在一起的,越多的 DOM 操作会导致越多的计算,影响页面性能
- Vue 数据和视图分离,使用虚拟DOM,比较开始和结束状态的虚拟 DOM 有哪些改变,根据结束状态的虚拟 DOM 操作 DOM;Vue 支持数据的双向绑定,组件化
网友评论