react有什么用?优点和缺点有哪些?
5 个回答
喜欢React的人很多,但是喜欢它的原因都不太一样
比较现实的优点:
- 能够实现服务器端的渲染,便于搜索引擎优化。这一点要比Backbone, Angular 1.x和Ember早期强
- 能够很好的和现有的代码结合。React只是MVC中的View层,对于其他的部分并没有硬性要求。意味着很多公司在选择用Angular全部重构和用React部分重构的时候,选择了React部分重构
- 因为一切都是component,所以代码更加模块化,重用代码更容易
- 学起来非常容易,几个小时就可以入门
- 因为强调只从this.props和this.state生成HTML,写起来bug比较少
比较高大上的优点,就是大家在大会上会说的优点:
- 因为用了virtual dom,所以性能很好
- 因为强调只从this.props和this.state生成HTML,所以非常的functional programming
缺点:
- 并不是一个完整的框架,基本都需要加上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性能的顶级技巧](https://www.peerbits.com/blog/top-performance-optimization-tips-for-react.html)
(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 完成开发环境的设置后迅速编写应用程序的代码。