VUE VS React 对比
这是面试中经常考察的一个问题,简单整理一下。我主要写 react ,所以 react 的特点阐述的多一点。
语法格式
vue 是单独的文件格式,一个文件包括了 js css HTML 全部
React 通常是 jsx 格式,JS 和 HTML 写在一个文件中,严格意义是 JSX,会通过 React 转换成JS代码,样式部分通过外部 css 文件控制(或者 less sass)
数据流
React 是单向数据流,也就是上层组件通过 state 存储数据,通过 props 传递给下层组件,下层组件不能直接更改上层组件的数据,通常通过回调函数或者 redux 等状态管理工具,改变整体的数据,触发组件的局部更新。
Vue 早期版本是双向数据流,2.x 后也改成单向数据流。
使用场景
react 起源于国外 Facebook,所以大部分国外公司使用
VUE 作者 Evan You 主要是国内使用。
其他对应的第三库也是类似的。
国内,阿里巴巴很多项目都是 ts + react。
原生应用
React-native 构建原生应用,实现一套代码多种应用。
react 类式代码便于和 ts 结合使用。
相同点
虚拟DOM,Diff 算法,响应式和组件化,具体的原理不展开讨论,详情参考其他博客。
key 的作用:再次渲染时,快速复用之前的 dom 节点,减少性能开销(key 唯一性确保 map 查找节点)
这两个是核心库,路由和全局状态管理交给相关的库。(vue-router、vuex、react-router、redux);构建工具:create-react-app or vue-cli
项目如何选择框架
根据人员熟练程度
小项目使用 vue 大项目使用 react;国际化项目使用 react;国内项目使用 vue;react 和对应的类型控制,团队人多时便于合作;vue 写法比较灵活,如果注释不完善,可能理解有一定困难。
参考链接:react vs vue