react 与 vue有什么不同?
1 语法不同
1)vue 采用template模板(html)+js+样式(less,sass,css)的形式
2)react 采用编写class 或者function的jsx形式
2 this表示不同
1)vue中编写的组件中的this为VueComponent实例对象(log打印this的时候可以看到为所在层级的实例对象)
2)react class编写的组件中的this为react Element 对象(log打印this没有具体到层级),function编写的组件this为undefined
3 编程范式不同
1)vue写法限制(由于嵌在html中)不够自由
2)react 写法采取jsx形式,能够遵循js的方式变成。(例如写个renderNode函数利用switch判断)
4 数据绑定不同
1)vue可以支持通过v-model对表单元素双向数据绑定
2)react需自己编写事件触发函数实现
但是vue与react都是数据流至view的单向形式
5 渲染优化不同
1)vue自身渲染实现的优化多,无需开发者切入
2)react对渲染需开发者切入相对较多,props的更改会导致渲染。
class组件形式使用shouldComponentUpdate来判断是否需要执行渲染。function组件中使用useMemo,useCallback来控制是否导致渲染。
6 复用方式不同
1)vue使用mixin混入的形式
2)使用hoc高阶组件的形式多,例如react-redux中的connect函数,antd中的Form.create函数。