浅谈Vue 与React 区别:

简介: 一直以来,围绕着Vue与React相关优缺点的话题络绎不绝,其实两个框架都没有相当大的差异,主要还是根据开发者的要求,这个决定是非常主观的。如果您想将前端JavaScript框架集成到现有应用程序中,Vue.js是更好的选择,如果您想使用JavaScript构建移动应用程序,React绝对是您的选择。

1.从思路上区分ReactVue

reactvue都是做组件化的,整体的功能都类似,但是他们的设计思路是有很多不同的。使用reactvue,主要是理解他们的设计思路的不同。

Reactreact的思路是all in js,通过js来生成html,所以设计了jsx,还有通过js来操作css;理解JSX语法并不困难,简单一句话,遇到{}符号内部为解析JS代码,遇到成对的<>符号内部为解析HTML代码。

Vuevue是把htmlcssjs组合到一起,趋向于传统web开发,用各自的处理方式,vue有单文件组件,可以把htmlcssjs写到一个文件中,html提供了模板引擎来处理;(<template><script><style>)

2.监听数据变化的实现原理不同:

Vue监听数据变化是通过getter/setter以及一些函数的劫持,能过获取到数据的精确变化;

React是默认通过引用diff进行的,如果不优化可能会导致大量不必要的DOM重新渲染;React是无法进行精确的数据监听,因为最初VueReact设计的理念就不同,Vue强调的是可变数据,而React强调的是数据不可变;因此,Vue上手更简单,而React更适合用于构建大型项目

3.渲染过程的不同

Vue在渲染过程中,会跟踪每个组件的依赖,所以可以快速的计算处Virtual DOM 的差异,而React 在应用中状态发生改变时,全部的子组件都会重新渲染;如果应用中交互复杂,需要处理大量的UI变化时,使用Vue是个不错的选择,但是更新元素并不频繁,那么vue的操控性能不如React来的稳定;

4.VuexRedux的区别

vuexredux都属于状态管理库,专门用于单独管理状态的,不同的是vuex是要专门配合vue使用,而 redux是一个范用的库,可以单独使用;

vuexRedux 都是通过store来作为全局状态存储对象;另外vue中的mutationredux 中的reducer两者都是改变store的直接方法来进行同步操作;

不同的是,vuex只有展示组件(通过全局根部植入直接访问store),而redux中展示组件是要通过容器组件连接store再进行访问;另外vuex自带module化功能,而redux是没有的。在vuex中消除了action的概念,并且只能配合vue使用,而redux可以配合任何框架。 vuex中的异步操作也只能在action中进行,redux中是没有特别的为异步操作创建一个方法。

5.从实际开发角度中一些代码区别: 

列表渲染:

Vue中使用v-for进行 循环渲染数据,React 通过 js 的数组语法 map,将数据对象映射为 DOM 对象。

条件渲染:

Vue中使用v-if或者v-show进行条件渲染,其中v-if可以配合v-else进行渲染 ,v-show则是通过控制cssdisplay来控制元素是否展示

<template>

<Button v-if="type === 'A'"  @click="say('hi')">备选项</Button>

</template>

<script>

export default {

data() {

return {

type: 'A'

};

}

methods: {

say(val) {

console.log(val);

}

}

};

</script>

 

React只需使用js 三目运算符语法即可完成条件渲染的功能,或者使用 && 逻辑。

const demo = (props) => {

const [type, setType] = useState('A');

const say = (val) => {

console.log(val);

};

return (

<div>

{type === 'A' ? (

<ButtononClick={() => {say('hi');}}/>

) : ('')}

</div>

)};

export default demo;

 

事件处理:

Vue注册点击事件:

 

<template>

<Button  @click="say('hi')">备选项</Button>

</template>

<script>

export default {

data() {

return {

checked: true

};

}

methods: {

say(val) {

console.log(val);

}

}};

</script>

 

 

React注册点击事件:

const demo = (props) => {

const say = (val) => {

console.log(val);

};

return (

<ButtononClick={() => {say('hi')}}/>

)};

 

export default demo;

 

组件通信:

Vue 使用props 向子组件通信,使用 events 向父组件通信。

React 通过props 传递数据和回调函数进行父子组件间通信6

组件嵌套:

Vue 使用slot 标签来实现组件嵌套,而 React 通过将需要嵌套的组件当做props 传给子组件的方式来实现嵌套。

 

一直以来,围绕着VueReact相关优缺点的话题络绎不绝,其实两个框架都没有相当大的差异,主要还是根据开发者的要求,这个决定是非常主观的。如果您想将前端JavaScript框架集成到现有应用程序中,Vue.js是更好的选择,如果您想使用JavaScript构建移动应用程序,React绝对是您的选择。

相关文章
|
移动开发 前端开发 JavaScript
Vue与React两大前端框架的主要差异点
以上就是Vue和React的主要差异点,希望对你有所帮助。在选择使用哪一个框架时,需要根据项目的具体需求和团队的技术栈来决定。
671 83
|
10月前
|
JavaScript 前端开发 API
对比Vue框架与React库的主要区别
在选择Vue还是React时,考虑项目的需求、团队的熟悉程度和个人偏好至关重要。如果项目需要快速原型开发和较小的学习曲线,Vue可能是更好的选择。相反,如果项目需要更大的灵活性,或者项目团队已经有React的经验,那么React可能是更合适的选择。
443 13
|
JavaScript 前端开发 API
Vue 3 中 v-model 与 Vue 2 中 v-model 的区别是什么?
总的来说,Vue 3 中的 `v-model` 在灵活性、与组合式 API 的结合、对自定义组件的支持等方面都有了明显的提升和改进,使其更适应现代前端开发的需求和趋势。但需要注意的是,在迁移过程中可能需要对一些代码进行调整和适配。
929 158
|
存储 缓存 JavaScript
如何优化React或Vue应用的性能
需要注意的是,性能优化是一个持续的过程,需要根据具体的应用场景和性能问题进行针对性的优化。同时,不同的项目和团队可能有不同的优化重点和方法,要结合实际情况灵活运用这些优化策略,以达到最佳的性能效果。
748 158
|
JavaScript 前端开发 算法
Vue 3 和 Vue 2 的区别及优点
Vue 3 和 Vue 2 的区别及优点
|
12月前
|
JavaScript 前端开发 API
Vue 2 与 Vue 3 的区别:深度对比与迁移指南
Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架,在过去的几年里,Vue 2 一直是前端开发中的重要工具。而 Vue 3 作为其升级版本,带来了许多显著的改进和新特性。在本文中,我们将深入比较 Vue 2 和 Vue 3 的主要区别,帮助开发者更好地理解这两个版本之间的变化,并提供迁移建议。 1. Vue 3 的新特性概述 Vue 3 引入了许多新特性,使得开发体验更加流畅、灵活。以下是 Vue 3 的一些关键改进: 1.1 Composition API Composition API 是 Vue 3 的核心新特性之一。它改变了 Vue 组件的代码结构,使得逻辑组
2307 0
|
JavaScript 前端开发 算法
vue和react 哪个更强大
vue和react 哪个更强大
370 3
|
前端开发 JavaScript Go
前端框架三巨头:React仍是老大,Vue 增长率最高
前端框架的走势图是通过统计最新的数据,并与前一年的数据进行比较而生成。数据来源于 npm trends 的每日下载量。前端框架三巨头 React、Angular 和 Vue ,虽然都很受欢迎,且保持着上升趋势,但 Vue 爆发力最强,但在使用率上,仍低于 React 和 Angular 。
2654 0