react有什么用?优点和缺点有哪些?

前端框架这么多,像angular这些算是比较火的,小弟最近看到react这框架,感觉不明觉厉,那么react到底哪一点出众?求解惑
关注者
42
被浏览
48,975

5 个回答

喜欢React的人很多,但是喜欢它的原因都不太一样

比较现实的优点:

  1. 能够实现服务器端的渲染,便于搜索引擎优化。这一点要比Backbone, Angular 1.x和Ember早期强
  2. 能够很好的和现有的代码结合。React只是MVC中的View层,对于其他的部分并没有硬性要求。意味着很多公司在选择用Angular全部重构和用React部分重构的时候,选择了React部分重构
  3. 因为一切都是component,所以代码更加模块化,重用代码更容易
  4. 学起来非常容易,几个小时就可以入门
  5. 因为强调只从this.props和this.state生成HTML,写起来bug比较少

比较高大上的优点,就是大家在大会上会说的优点:

  1. 因为用了virtual dom,所以性能很好
  2. 因为强调只从this.props和this.state生成HTML,所以非常的functional programming

缺点:

  1. 并不是一个完整的框架,基本都需要加上ReactRouter和Flux才能写大型应用

React是用于构建用户界面的JavaScript库,起源于Facebook的内部项目,该公司对市场上所有 JavaScriptMVC框架都不满意,决定自行开发一套,用于架设Instagram的网站。

React主要用于构建UI。可以在React里传递多种类型的参数,如声明代码,帮助开发者渲染出UI、也可以是静态的HTML DOM元素、也可以传递动态变量、甚至是可交互的应用组件。

React框架特点

1.声明式设计:React 使创建交互式 UI 变得轻而易举。为应用的每一个状态设计简洁的视图,当数据变动时 React能高效更新并渲染合适的组件。

2.组件化: 构建管理自身状态的封装组件,然后对其组合以构成复杂的 UI。

3.高效:React通过对DOM的模拟,最大限度地减少与DOM的交互。

4.灵活:无论使用什么技术栈,在无需重写现有代码的前提下,通过引入React来开发新功能。

React 用于前端开发的主要优点

让我们看看 React 的主要优点,了解它为什么从其他前端开发框架中脱颖而出。

(1)速度

React 基本上允许开发者在客户端和服务器端,利用其应用程序的各个部分,这最终提高了[开发过程](about:blank)的速度。

简单地说,不同的开发者可以编写单独的部分,所有的改变都不会导致应用程序的逻辑。

(2)灵活性

与其他前端框架相比,React 代码更容易维护,并且由于其模块化结构而具有灵活性。这种灵活性反过来又为企业节省了大量的时间和成本。

(3)性能

React 在设计时就考虑到了提供高性能。该框架的核心提供了一个虚拟 DOM 程序和服务器端渲染,这使得复杂的应用程序运行得非常快。

扩展阅读:[优化ReactJS性能的顶级技巧](peerbits.com/blog/top-p)

(4)可用性

如果你有一些基本的 JavaScript 知识,使用React是相当容易的。事实上,一个专业的 JavaScript 开发人员可以在三周内轻松地学会 React 框架的所有内涵和外延。

(5)可重用的组件

使用React 的主要好处之一是它有可能重复使用组件。这为开发人员节省了时间,因为他们不必为相同的功能编写各种代码。此外,如果在任何特定的部分做出任何改变,都不会影响应用程序的其他部分。

同时,如果你认为React只适用于网页开发,那你就大错特错了! Facebook很早就已经升级了该框架,推出了 React Native,用于开发 Android 和 iOS 平台的移动原生应用程序。

React 可以成为企业项目开发最佳选择的16个原因

(1)它很容易学习

React,与其他流行的前端框架如Angular 和 Vue 相比,更容易学习。

事实上,这也是 React 在短时间内获得如此大的吸引力的主要原因之一。它帮助企业快速建立他们的项目。

你看,学习某项技术或框架越难,开始开发过程所需的时间就越长。由于 React 是一个简单的框架,容易学习和开始,企业和大厂更倾向于使用它。

(2)它有助于建立丰富的用户界面

今天,一个应用程序的用户界面的质量起着重要的作用。如果用户界面设计得不好,那么它就会降低一个应用程序成功的机会。因此,建立丰富的用户界面对于一个应用程序的生存和发展是必要的。

好消息是,React允许通过它的声明式组件来构建这种高质量的、丰富的用户界面。

(3)它允许编写自定义组件

React 自带 JSX,一个可选的语法扩展,这使得编写我们自己的组件成为可能。

这些组件基本上接受 HTML 引用,也使所有子组件的渲染成为开发者的愉快体验。

虽然关于JSX的问题有很多争论,但它已经可以用于编写自定义组件,构建大批量的应用程序,并将HTML虚拟结构图转换为 ReactElement 树。

(4)它提高了开发者的生产力

当一个应用程序具有复杂的逻辑,并且一个组件的单一修改会极大地影响其他组件时,频繁的更新往往会变成头疼。为了解决这个问题,Facebook 通过组件重用性功能扩充了 React。

React 中的组件重用性,允许开发者重新部署相同的组件对象。

这种方法提供了更好的代码维护和增长,因为React中的每个组件都有自己的内部逻辑,这很容易操作,因此,提高了应用开发的生产力。

(5)它提供快速渲染

当你建立一个复杂的、高负荷的应用程序时,在一开始就定义应用程序的架构是必须的,因为它可以影响你的应用程序的性能。

简单地说,DOM模型是树状结构的。因此,在较高层次上的一个小修改会严重影响应用程序的用户界面。为了解决这个问题,Facebook 推出了一个虚拟 DOM 功能。

虚拟DOM,顾名思义,是DOM的虚拟表示,允许首先测试对虚拟DOM的所有修改,以计算每次修改的风险。

因此,这种方法有助于保持应用程序的高性能,并保证有更好的用户体验。

(6)它对搜索引擎友好

对于任何在线业务,搜索引擎优化是成功的途径。

一般情况下,页面加载时间越短,渲染速度越快,应用程序在百度等搜索引擎上的排名就越高。

由于渲染速度快,React与其他框架相比,大大减少了页面加载时间,这大大有助于企业在百度搜索引擎结果页上获得第一排名。

扩展阅读:如何使用ReactJS构建快速和SEO友好的网络应用程序

(7)它配备了有用的开发者工具集

学习新兴技术,并在实际项目中使用它们既有趣又有益,但前提是要正确使用它们。

Facebook 明白这一点,正是因为这个原因,他们在 React 框架中增加了 React开发工具 和 Chrome开发工具。

这些React工具可以帮助开发者发现子组件和父组件,观察组件的层次结构,并检查组件的当前状态。

(8)强大的社区支持

像 Angular 一样,React 也有非常强大的社区支持,这是在我们的项目中采用 React 的主要原因之一。

每天都有大量的 React 开发者,为使 React 成为更好的前端框架而贡献力量。目前,React 在 Github上已经获得了 200K 颗星,有 1,583 个固定贡献者。

不仅如此,专家们还经常在视频网站上上传免费的 React 教程,并在互联网上撰写深入的 React 教程文章和博客。例如,在谷歌上简单搜索 "免费React教程",就能得到13,000,000 个结果。

除此之外,React专家还经常在Stack Overflow 和 Quora 等QA网站上解疑释惑,这意味着如果你在使用React时遇到困难,你总是可以得到专家给出的可靠解决方案。

(9)它提供了更好的代码稳定性

React 遵循向下的数据流,以确保父结构不会受到其子结构的任何修改的影响。

因此,每当开发人员对一个对象进行修改时,只需要修改其状态并进行适当的修正。这样,只有一个特定的组件会被更新。

这种数据流和结构,结果是提供了更好的代码稳定性和应用程序的平稳性能。

(10)它被许多财富500强公司使用

仍然怀疑是否要使用React?

看看一些鼓舞人心的React解决方案的例子吧。成千上万的公司,包括一些财富500强公司,都选择了React JS来做他们的网站和移动应用。

Airbnb、特斯拉、阿里巴巴、腾讯QQ和沃尔玛都是使用 React Native 框架构建其移动应用的顶级品牌。

另一方面,React网络框架目前正被包括阿里、快手、腾讯、字节、小米、网易、滴滴、Netflix、Paypal、NASA、BBC、Lyft和纽约时报等著名公司所利用。

重点是,既然这么多成功的财富 500 强公司都在使用 React 和 React Native,那么React一定是真正有用的前端和移动应用开发框架。

(11)优秀的数据绑定

React 使用单向数据绑定和flux 架构,这是一个应用程序设计者,从一个点处理数据流。因此,任何人都有能力跟踪所有的变化,以改变数据的特定部分。

(12)扩展你的工具和能力

React 在一个项目中的主要好处是,开发人员可以在 JavaScript 和 Modem JSX 上写作。这种方法将允许他们在代码中使用HTML插入,这使得有广泛的机会进行重组,并提高完整的生产力。

(13)测试和功能

React 的结果不仅是性能,也是高度可测试的应用程序。它使开发一个明确的设计更容易,对测试友好。它们可以从触发的输出、函数、事件等方面进行监督。

(14)以UI为重点的设计

React 为任何 UI 布局提供了潜力。它允许重大的数据变化来自动转换特定的UI元素。由于这一最新功能,你不需要任何东西来更新UI。

(15)它提供了一个独特的抽象层

React 强大的一面是它提供了一个良好的抽象,这意味着它不会向用户透露任何复杂的内部信息。开发人员必须了解一些基础知识,并保留对内部功能的检查。

(16)模板设计变得简单

模板设计为开发人员节省了数小时的开发时间,并允许他们在create-react-app 完成开发环境的设置后迅速编写应用程序的代码。