相同点
- 支持 Virtual DOM
- 支持响应式和组件化的视图组件
- 核心库、路由和状态管理分离
- 支持 JSX,移动端都支持原生渲染
不同点
- 预编译
React 可以通过 Prepack 优化 JavaScript 源代码,在编译时执行原本在运行时的计算过程,通过简单的赋值序列提高 JavaScript 代码的执行效率,消除中间计算过程及分配对象操作。缓存 JavaScript 解析结果,优化效果最佳
Vue 可以静态分析 template,构造 AST 树,通过 PatchFlags 标记节点变化类型 - 渲染
React 通过 shouldComponentUpdate / setState,使用 PureCompoent 等对比前后状态和属性,手动决定是否渲染来优化
Vue 推荐模板语法,自动追踪组件依赖,精确渲染状态改变的组件 - 事件处理
React
React 17前,事件委托到 document,之后委托到 根节点
所有事件被合并为合成事件并兼容不同浏览器
事件处理函数中的 this 需要手动绑定或使用箭头函数声明
Vue
原生事件
this 自动绑定执行上下文
网友评论