浅谈Vue和React的区别

react入门学习---Todolist的实现(便签输入增删) 主要学习了react的数据渲染方式,这vue差别很大; 阅读详情

作为一个一直使用vue的初级前端,对react也有着学习的憧憬,当时选择vue只是因为左手石头剪刀布输给了右手(开玩笑)
在工作之余,也准备花点时间去了解一下react,毕竟在移动端开发react也是必会的一个技能。

先看看Vue和React的介绍:

React:

除非你最近一直不关注前端的发展,不然你肯定听说过由Facebook创建的JavaScript UI框架——React。它支撑着包括
Instagram在内的大多数Facebook网站。React与当时流行的jQuery,Backbone.js和Angular 1等框架不同,它的诞生改变了
JavaScript的世界。其中最大的变化是React推广了Virtual DOM(我们稍后探究)并创造了新的语法——JSX,JSX允许开发者
在JavaScript中书写HTML。

Vue:

Vue致力解决的问题与React一致,但却提供了另外一套解决方案。Vue使用模板系统而不是JSX,使其对现有应用的升级更加容
易。这是因为模板用的就是普通的HTML,通过Vue来整合现有的系统是比较容易的,不需要整体重构。同时Vue声称它更容易
学习,我最近才接触Vue,能证明所言非虚。关于Vue还需要说的是,Vue主要是由一位开发者进行维护的,而不像React一样由
如Facebook这类大公司维护。

作为两款现在比较火热的前端框架,我觉得最明显的区别在于两个框架对于数据的定位不同:

1.react整体是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入,所以在react中,是单向数据流,推崇结合
immutable来实现数据不可变。

在这里插入图片描述react在setState之后会重新走渲染的流程,如果shouldComponentUpdate返回的是true,就继续渲染,如果返回了false,就不会
重新渲染,PureComponent就是重写了shouldComponentUpdate,然后在里面作了props和state的浅层对比。

2.vue的思想是响应式的,也就是基于是数据可变的,通过对每一个属性建立Watcher来监听,当属性变化的时候,响应式的更新
对应的虚拟dom。
在这里插入图片描述

在其中也有相似的地方:

例如他们都是JavaScript的UI框架,专注于创造前端的富应用。不同于早期的JavaScript框架“功能齐全”,Reat与Vue只有框架的骨架,其他的功能如路由、状态管理等是框架分离的组件。

Vue.js(2.0版本)与React的其中最大一个相似之处,就是他们都使用了一种叫’Virtual DOM’的东西。所谓的Virtual DOM基本上说就是它名字的意思:虚拟DOM,DOM树的虚拟表现。它的诞生是基于这么一个概念:改变真实的DOM状态远比改变一个JavaScript对象的花销要大得多。

Virtual DOM是一个映射真实DOM的JavaScript对象,如果需要改变任何元素的状态,那么是先在Virtual DOM上进行改变,而不是直接改变真实的DOM。当有变化产生时,一个新的Virtual DOM对象会被创建并计算新旧Virtual DOM之间的差别。之后这些差别会应用在真实的DOM上。

在正式实践之后,我发现同样作为前端框架,但是整体理念还是有很大区别的:

对于前端小白,我更建议先学vue,因为vue是把html,css,js组合到一起,用各自的处理方式,vue有单文件组件,可以把html、css、js写到一个文件中,html提供了模板引擎来处理。即以前学的初级html的知识都可以用,在页面搭建时没有很强的逻辑性,vue都帮忙写好了。
在这里插入图片描述
而对于react,如果学过强语言,应该会更加习惯使用,react的思路是all in js,通过js来生成html,所以设计了jsx,还有通过js来操作css,社区的styled-component、jss等。
在这里插入图片描述

如果你想要你的应用尽可能的小和快,请选择Vue

当应用程序的状态改变时,React和Vue都将构建一个虚拟DOM并同步到真实DOM中。 两者都有各自的方法优化这个过程。
Vue核心开发者提供了一个benchmark测试,可以看出Vue的渲染系统比React的更快。

从实用的观点来看,这种benchmark只和边缘情况有关,大部分应用程序中不会经常进行这种操作,所以这不应该被视为一个重要的比较点。但是,页面大小是与所有项目有关的,这方面Vue再次领先,它目前的版本压缩后只有25.6KB。React要实现同样的功能,你需要React DOM(37.4KB)和React with Addon库(11.4KB),共计44.8KB,几乎是Vue的两倍大。双倍的体积并不能带来双倍的功能。

如果你打算构建一个大型应用程序,请选择React

像文章开头那种同时用Vue和React实现的简单应用程序,可能会让一个开发者潜意识中更加倾向于Vue。这是因为基于模板的应用程序第一眼看上去更加好理解,而且能很快跑起来。但是这些好处引入的技术债会阻碍应用扩展到更大的规模。模板容易出现很难注意到的运行时错误,同时也很难去测试,重构和分解。

相比之下,Javascript模板可以组织成具有很好的分解性和干(DRY)代码的组件,干代码的可重用性和可测试性更好。Vue也有组件系统和渲染函数,但是React的渲染系统可配置性更强,还有诸如浅(shallow)渲染的特性,和React的测试工具结合起来使用,使代码的可测试性和可维护性更好。

与此同时,React的immutable应用状态可能写起来不够简洁,但它在大型应用中意义非凡,因为透明度和可测试性在大型项目中变得至关重要。

如果你想要一个同时适用于Web端和原生APP的框架,请选择React

React Native是一个使用Javascript构建移动端原生应用程序(iOS,Android)的库。 它与React.js相同,只是不使用Web组件,而是使用原生组件。 如果你学过React.js,很快就能上手React Native,反之亦然。

面试官:谈谈VueReact区别 在我之前写的localStorage与Vuex的区别 这篇文章中讲过关于这个类型的题目,其中分析过描述区别,就是求同存异的过程。那接下来我用同样的思路来解这道题目。首先找到 Vue ... 阅读详情

相关推荐

ReactVue区别

文章目录ReactVue区别1.监听数据变化的实现原理不同2.数据流不同3.组件通信的区别4.模板渲染方式不同5.模板渲染过程不同6.框架本质不同Virtual DomMVVM MVC MVPMVCMVPMVVM ReactVue区别 1.监听数据变化的实现原理不同 Vue通过getter/setter方法以及一些函数的劫持能精确知道数据的变化。 React默认是通过比较引用方式diff算法进行的,若不优化,会导致大量不必要的VDom的重新渲染。 2.数据流不同 Vue实现双向绑定:props可以双

PILIpilipala的博客 7055

vuereact区别

如果想要一个轻量级,更快速,更现代的UI库来制作单页面应用程序应该选择Vue.js, 如果是大规模应用程序移动应用程序的应该选择React

粥可温 3万+

React Vue 全方位对比总结

大厂技术高级前端Node进阶点击上方程序员成长指北,关注公众号回复1,加入高级Node交流群前言作者:柠檬豆腐脑https://juejin.cn/post/7250834664260829243本文将从渐进式、时间线、跨平台及企业级框架情况多个维度对两个库进行对比。1. 从概念开始 React官网说:React是用于构建用户界面的Javascript库。Vue官网说:Vue是用于构建用...

程序员成长指北 1561

浅谈reactvue区别

在近期面试过程中,框架部分经常会遇到vuereact的对比,如此,在下整理一下reactvue区别 数据可变性 react整体是函数式的思想,把组件设计成纯组件,状态逻辑通过参数传入,所以在react中,是单向数据流,推崇结合immutable来实现数据不可变。react在setState之后会重新走渲染的流程,如果shouldComponentUpdate返回的是true,就继续渲染,如果返回了false,就不会重新渲染,PureComponent就是重写了shouldComponentUpd.

qq_44880532的博客 2244

浅谈VueReact区别

经过你自己的学习,相信你们你对vuereact已经有了一些了解,也觉得这两大框架有一些相同之处。那咱们就来谈一下你觉得这两大框架有什么地方是不太一样的? 我觉得最大的相同点就是虚拟DOM节点,reactvue只有框架的骨架,其他的功能就是一些组件。 1 监听数据变化的实现原理不同 vue的话使用getter|setter 方法或者函数的劫持,去来判断数据的变化与否,不需要去做一些特别的优化就可以达到一些功能。react是通过比较引用的方法进行的,加入不进行优化的话,可能会导致一些VDOM进行重新渲

m0_64337756的博客 553

浅谈 ReactVue 更新机制的差异

对于前端的 Vue React 相信大家并不陌生,这两个库有着截然不同的设计思想发展目标,对于我们上层使用者来说,研究它们的差异不仅让我们更加深入的去理解这些库的设计思想,也能帮助我们在开发中更有依据的去选择合适的框架。本篇文章就两者的更新机制来浅淡一下它们的区别,快进来看看吧!

前端之行,任重道远! 7174

浅谈vuereact的数据流绑定

就数据流来说: VueReact均是单向数据流传递,举个例子: 单向数据流指只能从一个方向修改数据,姑且我们可以这样理解,如下图所示。一个父组件下有两个子组件1子组件2,父组件可以向子组件传递数据。假如子组件都获取到了父组件的name,在子组件1中对name重新修改之后,子组件2父组件中的值并不会发生改变,这正是因为Vue中的机制是单向数据流,子组件不能直接改变父组件的状态。但反过来,如果是...

qq_36873261的博客 2710

浅谈reactvue

浅谈React Vue 相同之处: React Vue 有许多相似之处,它们都有: · 使用 Virtual DOM · 提供了响应式 (Reactive) 组件化 (Composable) 的视图组件。 · 将注意力集中保持在核心库,而...

chuizhua9314的博客 132

浅谈VueReact的不同之处

VueReact的不同之处 1.JSX & Templates Vue是Template+JavaScript+CSS的单文件组件的形式,更加接近于传统的前端写法,更加容易理解。无需引入css文件,看起来更为简洁。 React使用的JSX语法,all in JavaScript,虽然看起来更为繁复啰嗦,但其在JavaScript中插入HTML的做法,使得开发者拥有了更强的操控HTML的能力。 2.api 因为Vue的结构与逻辑的分离,在Vue中操控HTML需要更多的api,诸如v-if/v-for

weixin_43968392的博客 231

浅谈框架库的区别

什么是框架库? 初识框架库 对于好多初学者来说(例如我),很容易把框架库搞混淆,分不清它们的具体区别,直到现在我也不是把框架库搞得很清晰。只是站在初学者的角度,对框架库的区别有自己的认识见解。所以今天想在这,给我一样的初学者剖析下它两者都有哪些区别,以便于我们能更好的在实际开发中应用框架库。 简单地来分析,我们把框架(Framework)库(Library,简写Li...

Debug Dream的博客 1万+

浅谈vue,angular,react数据双向绑定原理分析

传统做法 前端维护状态,手动操作DOM更新视图。前端框架对服务器数据通过模版进行渲染。当用户产生了一个动作之后,我们通过document.getElementBy... 手动进行DOM更新。  框架帮忙分离数据视图,后续状态更新需要手动操作DOM,因为框架只管首次渲染,不追踪状态监听变化。 双向数据绑定 当我们在前端开发中采用MV*的模式时,M - model,指的是模型,也就是数据,V ...

p312011150的博客 2056

浅谈React,关于react那些事儿

react是什么?为什么要使用它? React 是一个用于构建用户界面的 JavaScript 库 优点: 传统的js需要去手动的更新DOM,每次状态改变时,使用js重新渲染整个页面会非常慢,这归咎于读取更新DOM的性能问题 而react运用一个虚拟的DOM实现了非常强大的渲染系统,在react中对DOM只更新不读取。react以渲染函数为基础 ...

pacholy的博客 450

浅谈VueReact对比

vuereact对比

m0_46390103的博客 386

【ms】Vue React

ms Vue react区别: 同: 它们都用到Virtual DOM,是一个映射真实DOM的JavaScript对象,如果需要改变任何元素的状态,那么是先在Virtual DOM上进行改变,而不是直接改变真实的DOM。当有变化产生时,一个新的Virtual DOM对象会被创建并计算新旧Virtual DOM之间的差别。之后这些差别会应用在真实的DOM上。 原文链接:http://caibaojian.com/vue-vs-react.html 1.渲染的时候不同: Vue宣称可以更快地计算出Vir

逆风飞翔的代码狗 197

浅谈react组件

组件化思想 vuereact都是现在最火的两大前端框架之一,无论是vue,还是react,他们都采用的是组件化的思想。对于一个前端开发人员来说,组件这个词并不陌生,也可以感受到组件所带来的好处与快感。 我就随性的讲讲我个人对组件化思想的看法,组件化并不是前端所特有的,在很多方面都会涉及到。我把它带来的好处分类两个大的方面: 把复杂的问题进行拆分,简化问题 提高公共内容的复用性,灵活性 再通俗易懂的来说,就好比搭积木一样,假如我们需要做一个火车模型,我们会在众多的零散的积木零件中,找到所需要用到的零件,

邓占勇的博客 441

reactvue

2018年算是正式开始接触并进入前端工作。(前面有一段前端工作,但是不是reactvue等,所以不谈)浅谈一下个人的一点点意见。 什么是 React React是一个简单的javascript UI库,用于构建高效、快速的用户界面。它是一个轻量级库,因此很受欢迎。它遵循组件设计模式、声明式编程范式函数式编程概念,以使前端应用程序更高效。它使用虚拟DOM来有效地操作DOM。它遵循从高阶组件到低阶组件的单向数据流。 什么是声明式编程 声明式编程是一种编程范式,它关注的是你要做什么,而不是如何做.

weixin_38731456的博客 232

浅谈vue或者react中的key的作用

1、每次面试基本都会问到一个问题,即是key是干什么的? 在之前,使用key的时候,都是直接使用,对具体的底层了解确是懵懂的, 几次被问及这个问题,因此后来变去了解了一下 2、在vuereact的使用中,我们经常在循环一个列表的时候,控制台会给警告提示,说你未使用key,或者是key相同,可能造成渲染错误 这个时候你可能就会纳闷,这个key到底干啥的??? key是虚拟dom节点的唯一标识,在页面数据更新后,vue或者react会立即创建新的虚拟dom树,而这个时候,如果将整个虚拟dom树通过render

qq_45927157的博客 291
上一篇: 浅谈promise、setTimeout和nextTick的区别
下一篇: uni-app使用心得——微信小程序
爱吃奶黄包の小脑腐�
博客等级 码龄7年 5粉丝 15原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值