vue和react都是做组件化的,针对view层,支持参数和state,有虚拟dom机制,数据驱动视图。各自配套的全局数据存储vuex和redux也都是flux架构的实现,有action和state,数据变化会通知组件。但是vue、vuex和react、redux还是有很多不同的
vue优势包括:
- 模板和渲染函数的弹性选择
- 简单的语法及项目创建
- 更快的渲染速度和更小的体积
react的优势包括:
- 更适用于大型应用和更好的可测试性
- 同时适用于web端和原生app
- 更大的生态圈带来的更多支持和工具
vue和react相同之处包括:
- 利用虚拟DOM实现快速渲染
- 轻量级
- 响应式组件
- 服务器端渲染
- 易于集成路由工具,打包工具以及状态管理工具
- 优秀的支持和社区
为什么react比vue更适合大型应用?
- vue的模板写法在组件数据较多时,数据和模板强相关,模板不能动态抽离为函数,而在react中,jsx可以很方便的抽离为函数,虽然vue也可以在render中写jsx,但在模板中无法使用this
- 高阶组件的写法上,react可以更好的使用,维护,vue中高阶组件大部分情况下时使用mixins,实现真正的高阶组件比较麻烦或者说很难实现
- vue中的函数编程思想应用较少,大部分是基于对象的,而在大型项目中函数式会更加灵活
- 适用于Web端和原生App
- 渲染数据更快
- react提倡的更细粒度的封装,带来的组件的复用性提高。
- eact社区的活跃性高,社区提供了多样性的解决方案和更多的选择