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函数。

你可能感兴趣的:(react 与 vue有什么不同?)