React入門1.5: 環境搭建 [本地版本-番外篇]
首先
我希望通过对React的多次文章总结,既作为我个人的复习,又作为备忘录的意义,来整理React相关的文章。
本文的目标是什么?
这次作为额外篇,我们将进行在本地环境下搭建React应用的开发环境。
系列清单
-
- React入门1:环境搭建 [在线版]
-
- React入门1.5:环境搭建 [本地版-番外篇] (本次)
-
- React入门2:棋盘的创建
-
- React入门3:实现互动功能
-
- React入门4:重构 [提升组件篇]
-
- React入门5:重构 [互动功能篇]
-
- React入门6:实现手番
-
- React入门7:判断游戏胜负
-
- React入门8:实现文本功能
-
- React入门9:时光旅行(1)
-
- React入门10:时光旅行(2)
- React入门11:时光旅行(3)
建立环境
- オンラインエディタ CodeSandbox を使った方法はコチラから
这次我们将介绍在本地环境中创建 React 项目的两种方法。
-
- 方法A: 手動
-
- ファイルの作成とコマンド操作によって、プロジェクトを自力で作成していきます。
-
- 方法B: 自動
- 1つのコマンドを実行することで、公式が提供するプロジェクトのひな型を作成します。
特点。
在A方法中,需要自己完成多个步骤,例如创建文件和操作命令,所以可能需要一些时间。但是,通过目录可以很容易地查看工作量并且并不是很多。通过这种方法,可以用最小的文件数来构建项目。
在B方法中,你只需要运行一个命令就能创建项目的目录。因此,你可以轻松地搭建开发环境。另外,它还有一个好处就是官方提供支持。但缺点是,会创建一些不必要的文件,因此整理项目会有些麻烦。
哪个更好呢?
在我的個人觀點中,我認為最好的方法是先以方法A來開發,同時學習React項目的結構,待熟悉一定程度後再轉向方法B。
A 的方式
请移动到您想要存放项目的目录,并按照以下步骤进行操作。为了方便说明,在这里我们将使用 sample_a 文件夹作为操作示例。
创建配置文件
在终端中,使用以下命令创建 package.json 文件。也可以通过操作资源管理器来创建文本文件。
npm init -y
package.json是一个用于管理项目配置和依赖关系列表的文件。根据这个文件,将进行包的安装。
目前的目录结构如下所示。新创建的项目将以(new)标注。
sample_a # プロジェクト全体の管理フォルダ
- package.json # (new) 設定ファイル
编辑配置文件
让我们使用您喜欢的编辑器将 package.json 文件更改为以下内容。
{
"name": "react-app",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-scripts": "^5.0.1"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
引入与React相关的包。
以下是要安装的软件包。
react
React ライブラリのエントリポイントreact-dom
Reactにおける仮想DOMの提供react-scripts
webpackとbabelの内部的動作请使用以下命令安装这些软件包。由于需要一些时间,请在此期间继续下一步骤。
npm install react react-dom react-scripts
我們將對新添加的文件夾和文件進行說明。
-
- node_modules フォルダ
-
- プロジェクトにおいて依存関係のパッケージがインストールされる場所です。このフォルダには、プロジェクトが依存する外部のパッケージやモジュールが格納され、プロジェクトの実行やビルドに必要なコードやリソースが含まれています。通常、このフォルダは手動で管理する必要はなく、package.json および package-lock.json ファイルに基づいて、自動的にパッケージがインストールされます。
-
- package-lock.json ファイル
- プロジェクトにおいて依存関係のバージョンを確定するためのものです。具体的には、プロジェクトにインストールされた各パッケージの正確なバージョン、およびその依存関係を保存します。
安装完成后的目录结构如下所示。
sample_a # プロジェクト全体の管理フォルダ
- package.json # 設定ファイル
- package-lock.json # (new) パッケージの記録ファイル
- node_modules # (new) パッケージの管理フォルダ(中身は省略)
创建文件
请按照以下方式创建一个public文件夹和一个src文件夹。关于每个文件夹的详情将在后面进行说明。
sample_a # プロジェクト全体の管理フォルダ
- package.json # 設定ファイル
- package-lock.json # パッケージの記録ファイル
- node_modules # パッケージの管理フォルダ(中身は省略)
- public # (new) 後述
- src # (new) 後述
公共文件夹
这是用来存放静态资产(如图像、字体、外部脚本等)的地方。
index.html 文档
让我们在public文件夹中创建一个名为index.html的文件,内容如下。
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- 文書の文字エンコーディングをUTF-8に指定 -->
<meta charset="UTF-8">
<!-- ページのタイトルを指定 -->
<title>React練習</title>
</head>
<body>
<!-- Reactアプリケーションが描画されるルート要素の定義 -->
<div id="root"></div>
</body>
</html>
请关注位于元素下的
元素。这个
元素的id值为root。稍后,我们将通过JavaScript获取这个元素,并使用React来实现程序。
现在的目录结构如下所示。
sample_a # プロジェクト全体の管理フォルダ
- package.json # 設定ファイル
- package-lock.json # パッケージの記録ファイル
- node_modules # パッケージの管理フォルダ(中身は省略)
- public # 静的アセットの管理フォルダ
- index.html # (new) Webページの主要コンテンツ
- src # 後述
源文件夹
这是存放React应用程序源代码的位置。在这里保存组件、样式、图片等文件。
index.js 文件
在src文件夹中,创建一个名为index.js的文件。该文件将成为React应用程序的入口点(程序的启动位置)。
// ReactおよびReactDOMをインポート
import React from 'react';
import ReactDOM from 'react-dom/client';
// Appコンポーネントを'./App'からインポート
import App from './App';
// ルート要素を特定のDOM要素に関連付ける
const root = ReactDOM.createRoot(document.getElementById('root'));
// ルート要素にReactコンポーネントを描画する
root.render(
// React.StrictModeコンポーネントでアプリケーションをラップする
<React.StrictMode>
{/* Appコンポーネントを描画 */}
<App />
</React.StrictMode>
);
当查看root.render()的参数时,我们可以确切地看到与JavaScript有些不同,它以类似HTML的方式进行编写。这种语法被称为React特有的JSX语法。
简要概述如下:通过查找位于index.html中的
元素(id=root),然后实现后续操作中所述的App.js文件中的App()组件。
App.js 文件
我们将在 src 文件夹中创建一个名为 App.js 的文件,内容如下。在这个文件中,我们将编写 App 组件。
// Appコンポーネントの定義
function App() {
return (
<div className="App">
<h1>Hello, world!</h1>
</div>
);
}
// Appコンポーネントを他のファイルで利用できるようにエクスポート
export default App;
你可以确认在这里,组件App()的return语句中也有JSX语法。
通过最后的 “export default App;”,这个文件在被导入时,设置返回组件 App()。
项目创建已经完成。最终目录结构如下所示。
sample_a # プロジェクト全体の管理フォルダ
- package.json # 設定ファイル
- package-lock.json # パッケージの記録ファイル
- node_modules # パッケージの管理フォルダ(中身は省略)
- public # 静的アセットの管理フォルダ
- index.html # Webページの主要コンテンツ
- src # ソースコード管理フォルダ
- index.js # (new) エントリポイント
- App.js # (new) コンポーネント
B方法
首先,请将当前目录切换到您想创建项目的目录中。
在终端中运行以下命令,将会为您创建一个React项目。
npx create-react-app プロジェクト名
项目名称可以使用任意字符串进行创建,但不能包含大写字母。这里以示例命名为sample_b。处理命令后,将在当前目录下创建一个名为sample_b的文件夹。下面是该文件夹的内容示例。
sample_b # プロジェクト全体の管理フォルダ
- package.json # 設定ファイル
- package-lock.json # パッケージの記録ファイル
- README.md #
- .gitignore #
- .git #
- node_modules # パッケージの管理フォルダ(中身は省略)
- public # 静的アセットの管理フォルダ
- index.html # Webページの主要コンテンツ
- favicon.ico #
- logo192.png #
- logo512.png #
- manifest.json #
- robots.txt #
- src # ソースコード管理フォルダ
- index.js # エントリポイント
- index.css #
- App.js # コンポーネント
- App.css #
- App.test.js #
- reportWebVitals.js #
- setupTests.js #
确认行动
让我们分别在A方法中的sample_a目录和B方法中的sample_b目录中打开终端并执行以下命令。
npm start
如果能够确认到以下这样的输出,那么就算是成功了。浏览器会自动启动,并且可以确认每种方法的操作结果。
Compiled successfully!
You can now view プロジェクト名 in the browser.
Local: http:// 省略
On Your Network: http:// 省略
Note that the development build is not optimized.
To create a production build, use npm run build.
webpack compiled successfully
方法A的执行结果
你可以确认页面上显示了如下内容:“你好,世界!”

B 方法的执行结果
您可以在以下页面上看到React标志以顺时针旋转的方式。

最后
这次,我们将总结关于在本地环境中进行环境构建的外传篇。在主要系列中,我们总结了有关React官方教程的内容。如果方便的话,请从系列列表中进行确认。