React 如何工作 - React 05

React 運作原理

序言

React 是开发网络和移动前端最流行的 JavaScript 软件包之一。Developed by Meta (formerly Facebook), React enables developers to create reusable components to complete front-end pages.

不过,需要注意的是,从技术上讲,React 并不是一个框架。这是因为它只负责呈现用户界面的组件。不过,React 提供了一种替代 Angular 和 Vue 等框架的解决方案,让我们可以使用它来完成复杂的前端页面功能。

本文将介绍 React 的工作原理、功能以及前端开发人员使用 React.js 的好处。

为什么需要前端框架?

在回答这个问题时,不妨想一想我们为什么需要使用前端框架?在网站开发领域,前端框架的确是一种现代工具,无论开发哪种技术或工具都是为了解决某个问题。在过去,一个静态页面可以用 HTML、CSS 甚至只是一些 JavaScript 来完成。

然而,随着科技越来越发达,使用互联网的人越来越多,网页的功能也越来越复杂,无论是会员注册、登录,还是地图功能、论坛、留言功能......等等,早已不是一个简单的网页,所能解决的了。

因此,有前端工程师和后端工程师之分。前端工程师负责 UI(用户体验)、可视化界面、数据和状态可视化......等。后端工程师负责数据处理、数据库操作、服务器管理、API 开发等。

由于网页的复杂性越来越高,已经无法使用 JavaScript 或 Jquery 来处理各种复杂的前端状态,因此框架应运而生。

开发 React、Vue 和 Angular 是为了处理复杂的前端状态。

What is React JavaScript?

React 是一款功能强大的 JavaScript 套件,用于通过模块化创建前端界面。它通过引入声明式和模块化方法,彻底改变了前端用户界面开发。

与 jQuery 中的 DOM 操作不同,React 使用虚拟 DOM 来优化性能。 React JavaScript(或 React.js)可处理复杂的前端屏幕,为开发人员提供结构化的高效方法。

React 運作原理

React 引入了 JSX,这是一种能将 JavaScript 和 HTML 代码无缝结合的语法糖;JSX 标记与 XML 相似,但有一些不同之处。

例如,React 使用 className 代替 CSS 传统的 class 属性。数字值和表达式用大括号括起来,引号代表字符串,这与 JavaScript 类似。

React 元素

React 可以使用其内置函数创建各种 HTML DOM(文档对象模型),因此让我们先回顾一下基本的 HTML 语法。

				
					<body> 
    <h1><span class="ez-toc-section" id="hello-world"></span>Hello World<span class="ez-toc-section-end"></span></h1> 
    <ul> 
        <li>dog</li> 
        <li>cat</li> 
    </ul> 
</body>
				
			

从上面的 HTML 结构中,我们可以知道 HTML 元素是树形结构,而有一个根元素(root element)就有两个子元素,第一个子元素为 h1第二个子元素是 ul,並且如果端看 ul 清單來說的話,ul 本身也是一个父元素,它包含两个 li 的子元素。

我们使用这些 DOM 来让浏览器知道我们的页面是什么样的,所以 React 的概念也是一样的,通过 React 开发的函数来构建这些元素,然后将这些元素组合成一个大的 HTML 并显示页面。

React DOM

创建元素时,我们需要将创建的 DOM 渲染到页面上,我们将此操作称为 "渲染"(Render)。我们可以使用 ReactDOM 内置的 render 将创建的 React 元素呈现到浏览器中。

				
					const dish = React.createElement("h1", "Hello World"); ReactDOM.render(dish, document.getElementById("root"));
				
			

使用上述 JavaScript 代码,将创建一个 HTML 元素,如下所示。并将该元素传递到 HTML 中。

				
					<div id="root"> 
    <h1><span class="ez-toc-section" id="hello-world-2"></span>Hello World<span class="ez-toc-section-end"></span></h1> 
</div>
				
			

当然,上面只是一个简单的 DOM,下面是一个通过在 ReactDOM 中呈现列表来构建 HTML 的示例。

				
					const hello = React.createElement("h1", "Hello") const world = React.createElement("h1", "World") ReactDOM.render([hello, world], document.getElementById("root"))
				
			

为什么使用 React.js?

全球有数百家大公司正在使用 React 构建系统,下面将简要介绍使用 React 的好处。

易于使用

拥有 JavaScript 技能的 Web 开发工程师通常可以很快学会如何使用 React,因为它依赖于纯 JavaScript,而且还具有模块化和面向对象的概念,因此上手相对容易。

如果您需要了解更多有关 JavaScript 的知识,许多网站都提供免费教程,您可以在阅读有关 React 的内容之前学习 JavaScript 的基础知识,从而简化前端开发流程。

可重复使用的元素

React 允许您在其他应用程序中重复使用组件。例如,如果您为一个页面开发了一个表单,您就可以将其用于其他页面,而无需再次开发。

此外,React 可以继续在其他组件中使用较小的组件来完成复杂的功能,而无需太多冗长的代码。每个 React 组件都有自己的状态,因此更易于维护。

简单的前端组件实施

React 将 JavaScript 对象与 HTML 语法和标记相结合。还可以通过 JSX(我们将在后面的章节中继续介绍这个术语)编写组件并将 React 添加到现有的 HTML 页面中。JSX 简化了多功能展示,并在不限制系统功能的情况下保持代码的简洁。

高性能

Virtual Dom 允许 React 快速更新 DOM 树,通过特殊机制和算法避免过多的重新渲染和性能影响。

搜索引擎优化

React 通过提高性能和缩短 JavaScript 代码加载时间来改善加载时间,这是搜索引擎优化(SEO)的一个步骤。

它还通过服务器端优化搜索引擎优化,解决了仅使用 JavaScript 的网站所面临的挑战之一,因为搜索引擎通常会发现这些网站难以抓取且耗时较长。

结论

这篇文章正式进入 React 的世界,介绍 React 的工作原理,包括如何通过 JavaScript 将 HTML DOM 生成页面。

React 团队的不断改进使 React 更易于使用,并能与 Bootstrap、Tailwind CSS、Axios、Redux 和 Firebase 等多种技术配合使用。

借助 Node.js 和 NGINX,在 VPS 上部署 React 应用程序也很容易。

如果您有任何建议或问题,欢迎留言!

如果您喜欢这一系列文章,请不要犹豫,点击 "喜欢 "并分享,让更多人看到它!

引用

React 白话运动 06 - React 如何工作

React 白話文運動系列

JavaScript 高级函数 - React 04

JavaScript 异步等待 - React 白话运动 03

JavaScript ES6 Object – React 02

JavaScript ES6 - React 01

2人评论了“React 運作原理 – React 白話文運動 05”

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

zh_CN简体中文