浅谈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绝对是您的选择。

相关文章
|
21天前
|
XML JavaScript 前端开发
Vue和React有什么区别
【8月更文挑战第28天】Vue和React有什么区别
111 0
|
4天前
|
JavaScript 索引
Vue 2和Vue 3的区别以及实现原理
Vue 2 的响应式系统通过Object.defineProperty来实现,它为对象的每个属性添加 getter 和 setter,以便追踪依赖并响应数据变化。
20 9
|
5天前
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
28 3
|
4天前
|
JavaScript 前端开发 API
如何在前端开发中有效管理状态:React vs. Vue
在现代前端开发中,状态管理是一个关键因素,它直接影响到应用的性能和可维护性。React 和 Vue 是当前最流行的前端框架,它们在状态管理方面各有优势和劣势。本文将深入探讨 React 和 Vue 在状态管理中的不同实现,分析它们的优缺点,并提供实际应用中的最佳实践,以帮助开发者选择最适合他们项目的解决方案。
|
15天前
|
JavaScript 前端开发 编译器
对Vue2 与 Vue3 的区别的理解
【9月更文挑战第3天】对Vue2 与 Vue3 的区别的理解
18 0
|
17天前
|
前端开发 Java Spring
Spring与Angular/React/Vue:当后端大佬遇上前端三杰,会擦出怎样的火花?一场技术的盛宴,你准备好了吗?
【8月更文挑战第31天】Spring框架与Angular、React、Vue等前端框架的集成是现代Web应用开发的核心。通过RESTful API、WebSocket及GraphQL等方式,Spring能与前端框架高效互动,提供快速且功能丰富的应用。RESTful API简单有效,适用于基本数据交互;WebSocket支持实时通信,适合聊天应用和数据监控;GraphQL则提供更精确的数据查询能力。开发者可根据需求选择合适的集成方式,提升用户体验和应用功能。
50 0
|
18天前
|
前端开发
|
18天前
|
前端开发 JavaScript
React 组件和 React 元素有什么区别?
【8月更文挑战第31天】
22 0
|
18天前
|
前端开发 API
|
18天前
|
存储 前端开发
React 中的 state 和 props 有什么区别?
【8月更文挑战第31天】
22 0

热门文章

最新文章