【架构】react 和 vue 对比
react 和 vue 对比
相关文章
- 如何做好架构
- 实现分层架构
- 实现微前端架构
- 事件驱动 vs 数据驱动
- 如何避免 css 污染
- 怎么理解前端生态
- react 和 vue 对比
- 微前端知识体系
- 如何保证前端架构的可扩展性、可维护性和性能
- 有状态组件和无状态组件
- 浅析RESTFUL架构
- vite与webpack对比
react 和 vue 对比
一、宏观上
核心思想不同
- Vue 定位是尽可能的降低前端开发的门槛,推崇渐进式开发体验
- React 口号是重新思考最佳实践
封装程度不同
- Vue 封装程度更高,内置指令、过滤器和数据双向绑定。
- React 封装度比较低,适合扩展。
二、微观上
组件更新方式不同
Vue 使用栈调度,是一种同步执行更新任务的方式。在栈调度中,更新任务会被依次放入执行栈中,并按照入栈顺序依次执行。只有当一个更新任务执行完毕后,才会执行下一个更新任务。(vue3采用协调更新 - BlockTree 和 DynamicChild)
React 使用协调更新,是一种基于优先级的更新处理方式。在协调更新中,更新任务会根据一定的优先级被调度执行,以确保优先级较高的任务能够得到更及时的响应。协调更新通常采用时间片段调度和任务优先级调度等策略,以提高页面的性能和用户体验。(Fiber 架构)
组件实现不同
- Vue 采用的选项式API,组件的选项分布在一个对象中(vue3支持组合式API)
- React 采用的是组合式API,核心概念是使用函数而不是对象来组织组件的代码,便于重用逻辑
监听数据变化的原理不同
- Vue 通过对数据的劫持,能精确知道数据变化,不需要特别的优化就能达到很好的性能
- React 默认是通过比较引用的方式进行的,如果不优化可能导致大量不必要的重新渲染
数据流方向不同
- Vue 父子组件单向数据流、组件内视图与模型支持双向
- React 父子组件单向数据流,组件内视图与模型也是单向数据流
组件通信不同
- Vue 父子组件通过 props $emit 形式通信,跨层级通过 provide \ inject
- React 父子组件通过 props callback 形式通信,跨层级通过 content
模板渲染方式不同
- Vue 通过template模板(vue3默认支持jsx)
- React 通过JSX渲染模板
事件机制不同
- Vue 采用标准Web事件(vue3会冒泡到组件根节点)
- React 原生事件被包装,所有事件都冒泡到顶层document监听
Vuex 和 Redux 的不同
- Vue $store被直接注入到了组件实例中,因此可以比较灵活的使用
- React 我们每一个组件都需要显示的用 connect 把需要的 props 和 dispatch 连接起来
【架构】react 和 vue 对比
https://www.cccccl.com/20230402/架构/react 和 vue 对比/