Vue和React区别

Vue和React区别

背景简介

React

主要是函数式编程概念

比较擅长处理组件化的页面

比较依赖于JSX

Vue

渐进式框架

可以在任意框架中进行使用(使用成本低)

成本低

灵活【生态系统完善】

高效【体积小,优化好,性能好】

共同点

都使用虚拟dom

提供响应式和组件化的视图组件

有相关的vue-router vuex react-router redux

不同点

React

灵活性和响应性

丰富的js库

可扩展性

不断发展

web或者移动平台

Vue

易用

更加流畅的集成

更好的性能,更小的占用空间

精心编写的文档

适应性

区别

数据是否可变

React:函数式思想,单向数据流,比较推荐immutable来实现数据的不可变

Vue:响应式,数据可变,通过监听每一个属性建立Watcher来进行监听,当属性变化的时候,响应的更新对应的虚拟dom

编写&写法

React:通过js生成html和css,所以设计了jsx

Vue:把css、js和html结合到一起,用各自的方式进行处理

重新渲染和优化

当组件的状态发生变化的时候,React的机制会触发整个组件树的重新呈现,我们可能需要额外的属性来进行避免不必要的子组件进行重新渲染

vue的重新渲染时开箱即用的,但Vue提供了优化的重新渲染会跟踪依赖并进行相应的工作

类组件写法 声明式写法

在react中类式写法很少,因为api很少

在Vue中式声明式写法,通过传入各种options api还有参数很多

react结合ts使用

vue比较复杂

路由和状态管理方案

React提供了一种称为Flux / Redux架构的创新解决方案,它代表单向数据流,是著名MVC架构的替代方案。现在,如果我们考虑Vue.js框架,就会有一个名为Vuex的更高级架构,它集成到Vue中并提供无与伦比的体验。

构建工具

在React中,有一个Create React App(CRA),在Vue中,它是vue-cli。

应用场景

React

构建大型项目的时候进行使用

同时适用Web端和原生APP:React Native是一个使用Javascript构建移动端原生应用程序(iOS,Android)的库。 它与React.js相同,只是不使用Web组件,而是使用原生组件。

Vue

构建数据简单中小型应用时:Vue提供简单的书写模板、大量api、指令等,可快速上手、并发项目

应用尽可能地小和块:随着vue3.0的发布,vue的体积进一步缩小,远小于react的体积,也配合diff算法,采用proxy去实现双向绑定,渲染大幅度提升

总结

Vue的优势包括:

模板和渲染函数的弹性选择, 简单的语法及项目创建, 更快的渲染速度和更小的体积;React的优势包括: 更适用于大型应用和更好的可测试性,同时适用于Web端和原生App, 更大的生态圈带来的更多支持和工具

而实际上,React和Vue都是非常优秀的框架,它们之间的相似之处多过不同之处,并且它们大部分最棒的功能是相通的。如果想将降低学习成本或前端JavaScript框架集成到现有应用程序中,Vue是更好的选择,如果想构建大型应用项目或者使用JavaScript构建移动应用程序,React绝对是最好的选择。

相关推荐
Shi_haoliu5 分钟前
Vue2 + Office Add-in关于用vue项目于加载项控制excel单元格内容(Demo版)
前端·javascript·vue.js·node.js·html·excel·office
计算机毕业设计木哥29 分钟前
计算机毕业设计选题推荐:基于SpringBoot和Vue的爱心公益网站
java·开发语言·vue.js·spring boot·后端·课程设计
IT_陈寒1 小时前
Redis 性能翻倍的 5 个隐藏技巧,99% 的开发者都不知道第3点!
前端·人工智能·后端
街尾杂货店&1 小时前
css word属性
前端·css
fruge3 小时前
2025前端工程化与性能优化实战指南:从构建到监控的全链路方案
前端·性能优化
知识分享小能手7 小时前
uni-app 入门学习教程,从入门到精通,uni-app基础扩展 —— 详细知识点与案例(3)
vue.js·学习·ui·微信小程序·小程序·uni-app·编程
demi_meng8 小时前
reactNative 遇到的问题记录
javascript·react native·react.js
MC丶科8 小时前
【SpringBoot 快速上手实战系列】5 分钟用 Spring Boot 搭建一个用户管理系统(含前后端分离)!新手也能一次跑通!
java·vue.js·spring boot·后端
千码君20168 小时前
React Native:从react的解构看编程众多语言中的解构
java·javascript·python·react native·react.js·解包·解构
lijun_xiao200910 小时前
前端最新Vue2+Vue3基础入门到实战项目全套教程
前端