Vue 与 React 区别?
举例法:
相同点
- 两者都是用于创建 UI 的 JavaScript 库
- 两者都快速轻便
- 都有自己独立常用的路由器和状态管理库
不同点
模板渲染方式的不同
- Vue 是通过一种拓展的 HTML 语法进行渲染,比如条件语句 v-if
- React 是通过 JSX 渲染模板,通过 JS 语法实现的,更加原生
设计理念上的区别
- Vue 使用的是可变数据
- React 更强调数据的不可变,用新的替换旧的
数据流的不同
- Vue 支持双向绑定
- React 不支持双向绑定,提倡的是单向数据流,称之为 onChange/setState 模式
Vuex 和 Redux 的区别
- Vuex 的数据是可变的,Vuex 是直接修改数据
- Redux 使用的是不可变数据,Redux 每次都是用新 state 替换旧 state,
监听数据变化的实现原理不同
- Vue 通过 getter/setter 进行数据劫持,判断数据变化
- React 默认是通过比较 DOM diff 的方式进行的,如果不优化可能导致大量不必要的重新渲染 (通过 shouldComponentUpdate 这个生命周期方法可以进行控制,但 Vue 将此视为默认的优化)
阐述法
它们之间的最大区别是 Vue 通常使用 HTML 模板文件,而 React 则完全是 JavaScript。 Vue 有双向绑定语法糖,React 则没有。