React是什么,React的优点、缺点,与Vue对比

在React源码中的React哲学里有这样一句话:
我们认为,React是用JavaScript构建快速响应的大型的Web应用程序的首选方案。
由此可见,关键在于快速响应,大型web应用。

那么当然,一句话不足以概括React,那React到底是什么?
React是一个javascript库,用于构建高效、快速的用户界面。React主要用于构建Ui

React的优点

React采用声明范式可以轻松描述应用。通过虚拟DOM,最大限度的减少与DOM的交互,速度很快;使用JSX,代码可读性很好;React可以与已有的库或者框架很好的配合;使用React构建组件使代码更加容易得到复用,可以很好的应用在大项目的开发过程中;其单向数据流减少了重复的代码,轻松实现数据绑定。

React的缺点

React不适合单独做一个完整的框架,做大型项目需要和其他框架组合使用
React的库非常庞大,新手很难理解需要花费一定的时间,使用内联模板和JSX,使编码变得复杂

React与Vue

理念差异
从设计理念上来说,vue更像是一种模板引擎。所谓模板引擎就是在静态模板上动态替换Js变量,最终渲染出页面。一个vue文件中,有html,css,js,放在一起。很直观,html是静态模板,js是动态变量。vue在模板引擎的基础上加了很多v指令,大大简化了开发。但是当js逻辑很复杂的时候,状态管理变得很麻烦。而对于React来说,React受函数式编程的影响,将html视为数据映射的结果,一个数据映射一个html,组合起来就是一个完整的页面DOM树。这则是区别于“模板思维”的“映射思维”。这是React与Vue最核心的差异。
对于vue来说,html是首位,vue中的html模板已经算是一个近乎完整的页面,只不过有几个变量无法确定,再把js加上去就好。而对于React来说,Js是首位,有Js才有html,Js是因,html是果。

共同点
虚拟Dom:改变真实的DOM状态远比改变一个JavaScript对象的花销要大得多。 Virtual DOM是一个映射真实DOM的JavaScript对象,如果需要改变任何元素的状态,那么是先在Virtual DOM上进行改变,而不是直接改变真实的DOM。当有变化产生时,一个新的Virtual DOM对象会被创建并计算新旧Virtual DOM之间的差别。之后这些差别会应用在真实的DOM上。这极大的提高了性能。

组件化:vue和react都建议将应用拆分成多个组件,每个组件负责不同的工作,组件之间通过特殊的方式相互关联。使应用的结构变得清晰,也有利于组件复用。

区别
Vue建议使用html模板进行编写,而React则使用了Javascript的扩展语法–JSX,,赋予了开发者许多变成能力。
React应用中的状态是(React)关键的概念。也有一些配套框架被设计为管理一个大的state对象,如Redux。此外,state对象在React应用中是不可变的,意味着它不能被直接改变(这也许不一定正确)。在React中你需要使用setState()方法去更新状态。在vue中,数据由data属性在Vue对象中进行管理。data参数就是应用中数据的保存者。 对于管理大型应用中的状态这一话题而言,Vue解决方案适用于小型应用,但对于对于大型应用而言不太适合
参考文档:Vue与React两个框架的区别和优势对比http://caibaojian.com/vue-vs-react.html

Logo

前往低代码交流专区

更多推荐