React 概述
什么是 React JS?
React 是用于生成前端最终用户界面的开源 JavaScript 库。 与提供完整应用程序框架的其他 JavaScript 库不同,React 仅侧重于通过被称作组件的封装单元创建应用程序视图,这些组件会维护状态和生成 UI 元素。 你可以在网页上放置单个组件,或嵌套组件的层次结构以创建一个复杂的 UI。
React 组件通常以 JavaScript 和 JSX (JavaScript XML) 编写,JSX 是一个与 HTML 很相似的 JavaScript 扩展,但有一些语法功能,这些语法功能使执行常见任务(例如为 UI 元素注册事件处理程序)变得更轻松。 React 组件实现 render 方法,该方法返回表示组件 UI 的 JSX。 在 Web 应用中,组件返回的 JSX 代码将转换为在浏览器中呈现的符合浏览器的 HTML。
React 是否可在 Windows 上工作?
是的。 Windows 支持两种开发 React 应用的不同环境:
可使用 React 执行什么操作?
Windows 为 React 开发人员提供各种场景支持,包括:
基本 Web 应用:如果你是初次接触 React 并且主要对学习如何使用 React 生成基本 Web 应用感兴趣,我们建议你在 Windows 上直接安装 create-react-app。 如果你计划创建将针对生产部署的 Web 应用,则可能需要考虑在适用于 linux 的 Windows 子系统 (WSL) 上安装 create-react-app,以提高性能速度、系统调用兼容性,以及本地开发环境与部署环境(通常是 Linux 服务器)之间的一致性。
单页应用 (SPA) :这些网站会与用户进行交互,方式是通过使用服务器中的数据动态重写当前的网页,而不是根据浏览器的默认值加载整个新页。 如果要生成面向内容的静态 SPA 网站,建议在 WSL 上安装 Gatsby。 如果要使用 Node.js 后端生成服务器呈现的 SPA 网站,则建议在 WSL 上安装 Next.js。 (尽管 Next.js 现在也提供静态文件服务)。
本机桌面应用:React Native for Desktop + macOS 使你能够使用 JavaScript 生成本机桌面应用程序,这些应用程序可跨各种类型的桌面电脑、笔记本电脑、平板电脑、Xbox 和混合现实设备运行。 它同时支持 Windows SDK 和 macOS SDK。
本机移动应用:React Native 是使用 JavaScript 跨平台创建 Android 和 iOS 应用的一种方式。这些应用呈现到本机平台 UI 代码。 安装 React Native 的方法主要有两种:Expo CLI 和 React Native CLI。 在 StackOverflow 上有对这两种方法的详细比较。 Expo 具有 iOS 和 Android 移动设备的客户端应用,用于运行和测试应用。 有关使用 Windows、React Native 和 Expo CLI 开发 Android 应用的说明,请参阅 Windows 上用于 Android 开发的 React Native。
安装选项
可通过几种不同的方法来安装 React 以及最适合你的用例场景的集成工具链。 以下是一些最常见的方法。
- 直接在 Windows 上使用 Vite 安装 React
- 在适用于 Linux 的 Windows 子系统 (WSL) 上使用 Vite 安装 React
- 在 WSL 上安装 Next.js 框架
- 在 WSL 上安装 Gatsby 框架
- 安装 React Native for Desktop 桌面开发
- 在 Windows 上安装适用于 Android 开发的 React Native
- 安装适用于跨平台移动开发的 React Native
- 在浏览器中安装无工具链的 React:因为 React 是一个 JavaScript 的库,即一个文本文件的集合(最基本的形式),所以无需在计算机上安装任何工具或库即可创建 React 应用。 你可能只想向网页添加“少量的交互性”,而不需要生成工具。 只需在 HTML 页上添加一个普通标记
<script>
即可添加 React 组件。 请按照 React 文档中的“在一分钟内添加 React”进行操作。
React 工具
虽然在纯文本编辑器中编写简单的 React 组件可对 React 进行很好的介绍,但是以这种方式生成的代码很庞大,难以维护和部署,而且速度慢。 生产应用需要执行一些常见任务。 这些任务由被应用作为依赖项的其他 JavaScript 框架处理。 这些任务包括:
- 编译 - JSX 是常用于 React 应用的语言,但浏览器无法直接处理此语法。 因此需要将代码编译为标准的 JavaScript 语法,并为不同的浏览器自定义代码。 Babel 是支持 JSX 的示例编译器。
- 捆绑 - 由于性能是新式 Web 应用的关键,因此应用的 JavaScript 应只包含应用所需的代码,并将其合并为尽可能少的文件,这一点很重要。 webpack 等捆绑程序为你执行此任务。
- 包管理 - 通过包管理,可以轻松地将第三方包的功能添加到自己的应用,其中包括更新包和管理依赖项。 常用的包管理器包括 Yarn 和 npm。
这一套帮助你创建、生成和部署应用的框架统称为工具链。 适用于使用此工具链的 React 的一个易于设置的开发环境是 Vite,可为你生成简单的单页应用。 使用 Vite 所需的唯一设置是 Node.js。
- 有关 Windows 开发,请按照说明在 WSL 上安装 Node.js 或在 Windows 上安装 Node.js。
React Native 组件目录
可在 React Native 应用中使用的组件包括:
- 核心组件 - 作为 React Native 框架的一部分开发和支持的组件。
- 社区组件 - 由社区开发和维护的组件。
- 本机组件 - 你使用平台本机代码创作的组件,并且为了可以从 React Native 访问而进行了注册。
React Native 目录提供可以由目标平台筛选的组件库的列表。
Fullstack React 工具链选项
React 是库,而不是框架,因此可能需要其他工具来创建更复杂的应用。 除了使用 React,你可能还会考虑使用以下各项:
- 包管理器:React 的两个常用包管理器是 npm(包含在 NodeJS 中)和 yarn。 两者都支持可以安装的大量维护良好的包库。
- React 路由器:导航组件的集合,可帮助你执行诸如为 Web 应用的 URL 添加书签,或以组合方式在 React Native 中进行导航等操作。 React 实际上只涉及状态管理并将该状态呈现给 DOM,因此创建 React 应用程序通常需要使用 React 路由器等路由库。
- Redux:一种可帮助处理数据流体系结构的可预测的状态容器。 在进行更高级的 React 开发之前,可能不需要使用它。 引用 Redux 的创建者之一 Dan Abramov 的一句话:“除非你在使用 Vanilla React 的过程中遇见问题,否则不要使用 Redux。”
- Webpack:一种使你可编译 JavaScript 模块的生成工具,也称作模块捆绑程序。 webpack 处理应用程序时,它会在内部生成一个依赖项关系图,该关系图映射项目所需的每个模块,并生成一个或多个捆绑。
- Uglify:一种 JavaScript 分析器、缩小器、压缩器和修饰器工具包。
- Babel:一种 JavaScript 编译器,主要用于将 ECMAScript 2015+ 代码转换为当前及旧浏览器或环境中的后向兼容的 JavaScript 版本。 它对于使用 babel-preset-env 也很有帮助,这样你就无需微观管理语法转换或浏览器填充代码,并且可以定义要支持的 Internet 浏览器。
- ESLint:一种用于识别和报告在 JavaScript 代码中发现的模式的工具,有助于使代码更加一致,避免出现 Bug。
- Enzyme:一种适用于 React 的 JavaScript 测试实用工具,通过该工具可以更轻松地测试 React 组件的输出。
- Jest:一种内置于 create-react-app 包中的测试框架,有助于编写惯用的 JavaScript 测试。
- Mocha:一种在 Node.js 和浏览器中运行的测试框架,可帮助进行异步测试、报告并将未捕获的异常映射到正确的测试用例。
React 课程和教程
以下是一些学习有关 React 的知识以及如何生成示例应用的建议位置:
- React 学习路径包含可帮助你学习基础知识的在线课程模块。
- 生成一个在浏览器中运行的单页应用 (SPA)(例如这个使用 Microsoft Graph API 为用户检索日历信息的示例 Web 应用)
- 使用 Next.js 生成服务器呈现的应用,或使用 Gatsby 生成静态网站生成的应用
- 为在 Windows、Android 和 iOS 设备上运行的本机应用创建用户界面 (UI)(查看这些本机 Windows 应用示例或这个使用 Microsoft Graph API 为用户检索日历信息的示例本机应用)
- 开发适用于 Surface Duo 双屏设备的应用
- 使用 Fluent UI React 组件创建 Web 应用或本机应用
- 使用 TypeScript 生成 React 应用
其他资源
- 官方 React 文档提供有关 React 的所有最新信息
- 适用于 React 开发人员工具的 Microsoft Edge 外接程序:向 Microsoft Edge 开发人员工具添加两个选项卡(组件和探查器),帮助进行 React 开发。