IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> React是如何工作的? -> 正文阅读

[JavaScript知识库]React是如何工作的?

  React自推出以来,改变了前端开发人员构建web应用程序的方式。使用虚拟DOM,React使UI更新更加高效,使web应用程序更加快速。但是,为什么中等规模的React web应用程序仍然表现不佳?

  关键就在于你是如何使用React的。

  像React这样的现代前端库并不能神奇地让你的应用程序更快。它要求开发人员了解React是如何工作的,以及组件在组件生命周期的各个阶段是如何生存的。

  使用React,你可以通过测量和优化组件渲染的方式和时间,获得它必须提供的许多性能改进。而且,React只提供了简化此操作所需的工具和功能。

  React是如何工作的?

  React开发的核心是简单明了的JSX语法,以及React构建和比较虚拟DOM的能力。自发布以来,React影响了许多其他前端库,诸如Vue.js也依赖于虚拟DOM的思想。

  以下是React的工作原理:

  每个React应用程序都以根组件开始,并由树结构中的许多组件组成。React中的组件是“函数”,它们根据用户界面接收的数据(道具和状态)呈现用户界面。

  我们可以用F来表示。

  UI = F(data)

  用户与UI交互并导致数据更改。无论交互涉及单击按钮、点击图像、拖动列表项、AJAX请求调用API等,所有这些交互都只会更改数据。它们不会直接导致用户界面的改变。

  在这里,数据是定义web应用程序状态的一切,而不仅仅是存储在数据库中的内容。甚至前端状态的位(例如,当前选择了哪个选项卡或当前是否选中了复选框)也是该数据的一部分。?

  每当此数据发生更改时,React都会使用组件函数重新呈现UI,但实际上仅限于:

  UI1=F(data1)

  UI2=F(data2)

  React通过在其虚拟DOM的两个版本上应用比较算法来计算当前UI和新UI之间的差异。

  Changes = Diff(UI1, UI2)

  React然后继续仅将UI更改应用于浏览器上的真实UI。

  当与组件关联的数据发生更改时,React确定是否需要实际的DOM更新。这允许React避免在浏览器中进行可能非常昂贵的DOM操作,例如创建DOM节点和访问现有的DOM节点。

  组件的重复扩散和渲染可能是任何React应用程序中React性能问题的主要来源之一。构建一个React应用程序,其中扩散算法无法有效协调,导致整个应用程序重复渲染,可能会导致令人沮丧的缓慢体验。

  要充分利用React,你需要利用它的工具和技术。React web应用程序的性能在于其组件的简单性,在优化应用程序之前,你需要了解React组件的工作原理以及它们在浏览器中的呈现方式。React生命周期方法提供了防止组件不必要地重新渲染的方法。消除这些瓶颈,你将获得用户应得的应用程序性能。让你学到的技能贴合就业市场,不怕面对就业竞争对手。

本文来源:www.gec-edu.org

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-15 18:10:55  更:2021-12-15 18:11:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:45:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码