vue2、vue3、react之间的优劣比较

目录

一、vue2和vue3之间的优劣比较

1.1 vue2(选项式API)

1.1.1 使用方式

1.1.2 优点

1.1.3 缺点

1.2 vue3(组合式API)

1.2.1 使用方式

1.2.2 优点

1.2.3 缺点

二、vue和react之间的相同点和不同点

2.1 相同点

2.2 不同点

2.3 Vue和React各自优势

2.3.1 React

2.3.2 Vue

2.4 应用场景

2.4.1 React

2.4.2 Vue


一、vue2和vue3之间的优劣比较

1.1 vue2(选项式API)

1.1.1 使用方式

export default {
    name: '',
    components: {},
    props: {}
    data() { return {}},
    created() {},
    mounted() {},
    methods:{}
    ...
}

1.1.2 优点

  • 比较适合中小型项目使用,
  • 代码组织模式固定,vue2手把手教你把代码放置在哪里,可以减少费神思考

1.1.3 缺点

  • 相同逻辑关注点的代码被拆分到了不同的选项中,上下翻看代码较为繁琐
  • 代码逻辑复用需要通过mixins来实现,翻看代码不便,且可能造成在不同的mixins中使用了相同的变量以及函数名,从而导致引用mixins时,不知来源是哪里的
  • 需要依赖this上下文对象访问属性,而this操作不当,易代来调用属性或方法不当等问题

1.2 vue3(组合式API)

说明:组合式API是vue3以及vue2.7+的内置功能,而vue2.6+需要配合@vue/compostion-api使用

1.2.1 使用方式

//通过在script中引入setup,即可引用组合式API
<script setup>
import {ref,reactive,onMounted} from 'vue'
// 在这里写下vue3代码
</script>

1.2.2 优点

  • 更好的逻辑复用:通过组合函数来实现更加高效的逻辑复用(如VueUse)
  • 更好的代码组织:同一个逻辑关注点相关的代码被归为一组。查找方便
  • 更好的类型推导:
  • 更小的生产包体积:<script setup>形式书写的组件模板和<script setup>中的代码位于同一作用域,被编译的模板可以直接访问<script setup>中定义的变量,无需从实例中代理。这对压缩代码更友好,因为本地变量名字可以亚索,但对象的属性名则不能。

1.2.3 缺点

  • 没有了规定的代码组织模式,则需要加重这部分的思考,思考代码应该放在哪里

二、vue和react之间的相同点和不同点

2.1 相同点

  • 使用virtual dom
  • 提供了响应式(Reactive)和组件化(Composable)的视图组件
  • 将注意力集中保持在核心库,而将其它功能如路由和全局状态管理交给相关的库

2.2 不同点

  • 数据是否可变
    • React:immutable(不可变);整体是函数式思想,数据单向流动,推崇结合immutable来实现数据不可变
    • Vue:mutable(可变);整体是响应式思想,也就是基于数据可变的,也就是对每一个属性建立Watcher,当数据发生变化时,响应式的更新对应的虚拟DOM
  • 编译&写法
    • React:all in js,通过js生成html,即jsx写法,还有通过js来操作css
    • Vue:把html、css、js组合到一起,用各自的处理方式,Vue有单文件组件,可以把html、css、js写到一个文件中,html提供了模板引擎来处理。
  • 重新渲染和优化
    • React:当组件状态发生变化时,会触发React的机制使得整个组件树的重新呈现,从而可能需要使用额外的属性来避免不必要的重新渲染子组件。
    • Vue:虽然Vue的重新渲染是开箱即用的,但是Vue提供了优化的重新渲染,且系统会在渲染过程中跟踪依赖关系并相应地工作。
  • 类式组件?声明式组件?
    • React:React是类式组件,api较少
    • Vue:Vue是声明式组件,传入的options、api和参数都很多
  • 路由和状态管理解决方案
    • React:React提供了一种Flux/Redux架构的创新解决方案,它代表单向数据流,是著名的MVC架构替代方案。
    • Vue:Vue提供了一种名为Vuex的状态管理解决方案
  • 构建工具
    • React:create-app-react
    • Vue:vue-cli

2.3 Vue和React各自优势

2.3.1 React

  • 灵活性和响应性:它提供最大的灵活性和响应能力。
  • 丰富的JavaScript库:来自世界各地的贡献者正在努力添加更多功能。
  • 可扩展性:由于其灵活的结构和可扩展性,React已被证明对大型应用程序更好。
  • 不断发展: React得到了Facebook专业开发人员的支持,他们不断寻找改进方法。
  • web或移动平台: React提供React Native平台,可通过相同的React组件模型为iOS和Android开发本机呈现的应用程序。

2.3.2 Vue

  • 易于使用: Vue.js包含基于HTML的标准模板,可以更轻松地使用和修改现有应用程序。
  • 更顺畅的集成:无论是单页应用程序还是复杂的Web界面,Vue.js都可以更平滑地集成更小的部件,而不会对整个系统产生任何影响。
  • 更好的性能,更小的尺寸:它占用更少的空间,并且往往比其他框架提供更好的性能。
  • 精心编写的文档:通过详细的文档提供简单的学习曲线,无需额外的知识; HTML和JavaScript将完成工作。
  • 适应性:整体声音设计和架构使其成为一种流行的JavaScript框架。它提供无障碍的迁移,简单有效的结构和可重用的模板。

2.4 应用场景

2.4.1 React

  • 构建一个大型应用项目时:React的渲染系统可配置性更强,和React的测试工具结合起来使用,使代码的可测试性和可维护性更好。大型应用中透明度和可测试性至关重要。
  • 同时适用于Web端和原生APP时:React Native是一个使用Javascript构建移动端原生应用程序(iOS,Android)的库。 它与React.js相同,只是不使用Web组件,而是使用原生组件。

2.4.2 Vue

  • 构建数据简单中小型应用时:vue提供简单明了的书写模板、大量api、指令等等,可快速上手、开发项目
  • 应用尽可能的小和快时:随着vue3.0的发布,vue的体积进一步缩小,远小于react的体积,也配合diff算法,采用proxy去实现双向绑定,渲染大幅度提升
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: ReactVue是两个流行的前端框架,它们在一些方面有一些区别。React整体的思路是函数式的,推崇纯组件、数据不可变和单向数据流。而Vue是基于可变数据的,支持双向绑定。React的组件扩展一般通过高阶组件实现,而Vue使用mixin。React的功能相对较少,很多功能是由社区完成的,而Vue内置了很多功能,使得开发更加方便。例如,React需要使用Redux来管理状态,而Vue内置了Vuex来管理状态。此外,React使用Virtual DOM来提高性能,而Vue不需要使用Immutable来优化性能。关于ReactVue2和Vue3的区别,我没有找到相关的引用内容。但是可以说,Vue3相对于Vue2有一些重要的改进,包括更好的性能、更小的包体积、更好的TypeScript支持等。Vue3还引入了Composition API,使得组件的逻辑更加灵活和可复用。总的来说,ReactVue都是优秀的前端框架,选择哪个取决于个人的偏好和项目需求。 #### 引用[.reference_title] - *1* *2* [Reactvue的区别](https://blog.csdn.net/weixin_45785651/article/details/121556598)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ReactVue的区别](https://blog.csdn.net/PILIpilipala/article/details/118298282)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值