菜鸟教程 -- 学的不仅是技术,更是梦想!

React 教程
(追記) (追記ここまで)

React 安装(NPM)

在开始之前,确保你已经安装了 Node.js 和 npm,你可以通过以下命令检查它们是否已经安装:

node -v
npm -v

如果你的系统还不支持 Node.js 及 NPM 可以参考我们的 Node.js 教程

我们建议在 React 中使用 CommonJS 模块系统,比如 browserify 或 webpack,本教程使用 webpack。

国内使用 npm 速度很慢,你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

$ npm install -g cnpm --registry=https://registry.npmmirror.com
$ npm config set registry https://registry.npmmirror.com

这样就可以使用 cnpm 命令来安装模块了:

$ cnpm install [name]

更多信息可以查阅:http://npm.taobao.org/


使用 create-react-app 快速构建 React 开发环境

React 提供了一个官方工具 Create React App,用于快速搭建 React 项目。

create-react-app 是来自于 Facebook,通过该命令我们无需配置就能快速构建 React 开发环境。

create-react-app 自动创建的项目是基于 Webpack + ES6 。

执行以下命令创建项目:

$ cnpm install -g create-react-app
$ create-react-app my-app
$ cd my-app/
$ npm start

也可以使用 npx 命令来创建,npx 是 npm 5.2.0 及更高版本中包含的一个工具,用于执行本地或远程的 npm 包:

npx create-react-app my-app

在浏览器中打开 http://localhost:3000/ ,结果如下图所示:

项目的目录结构如下:

my-first-react-app/
├── node_modules/
├── public/
│ ├── favicon.ico
│ ├── index.html
│ ├── logo192.png
│ ├── logo512.png
│ ├── manifest.json
│ └── robots.txt
├── src/
│ ├── App.css
│ ├── App.js
│ ├── App.test.js
│ ├── index.css
│ ├── index.js
│ ├── logo.svg
│ ├── reportWebVitals.js
│ └── setupTests.js
├── .gitignore
├── package.json
├── README.md
└── yarn.lock (或 package-lock.json)

目录和文件说明

node_modules/

存放所有项目的依赖包。这个目录由 npm 或 yarn 自动生成,包含了项目运行所需的所有第三方库和模块。

public/

存放静态文件,Webpack 不会对这个目录中的文件进行处理。public 目录下的文件会被直接复制到构建目录。

  • favicon.ico:浏览器标签页上的小图标。
  • index.html:HTML 模板文件,React 组件将被挂载到这个文件中的 div 元素中。
  • logo192.pnglogo512.png:不同尺寸的 React logo 图标。
  • manifest.json:Web 应用清单文件,用于定义应用的名称、图标等元数据。
  • robots.txt:用于告诉搜索引擎哪些页面可以被抓取。

src/

存放应用的源代码。这里是你主要进行开发的地方。

  • App.css:App 组件的样式文件。
  • App.js:主组件文件,定义了一个基础的 React 组件。
  • App.test.js:App 组件的测试文件。
  • index.css:全局样式文件。
  • index.js:应用的入口文件,负责渲染 React 组件到 DOM 中。
  • logo.svg:React logo 的 SVG 文件。
  • reportWebVitals.js:用于性能监测的文件,可以帮助你了解和分析应用的性能。
  • setupTests.js:用于设置测试环境的文件。

.gitignore

列出 Git 应该忽略的文件和目录,例如 node_modules/ 和构建输出的目录。

package.json

项目的配置文件,包含项目信息、脚本、依赖项等。

README.md

项目的自述文件,包含项目的基本信息和使用说明。

yarn.lockpackage-lock.json

锁定文件,记录了确切的依赖版本,确保在不同环境中安装的依赖一致。

尝试修改 src/App.js 文件代码:

src/App.js

importReact, {Component}from'react'; importlogofrom'./logo.svg'; import'./App.css'; classAppextendsComponent{render(){return( <divclassName="App"> <divclassName="App-header"> <imgsrc={logo}className="App-logo"alt="logo" /> <h2>欢迎来到菜鸟教程</h2> </div> <pclassName="App-intro"> 你可以在 <code>src/App.js</code> 文件中修改。 </p> </div> ); }}exportdefaultApp;

修改后,打开 http://localhost:3000/ (一般自动刷新),输出结果如下:

src/index.js 是一个入口文件,我们可以尝试直接修改 src/index.js 文件代码:

注意: React 18 中,ReactDOM.render 被废弃。

实例

import React from 'react';
import ReactDOM from 'react-dom';

function Hello(props) {
return <h1>Hello {props.name}!</h1>;
}

const root = ReactDOM.createRoot(document.getElementById("root"));
// 渲染 Hello 组件,并传递 name 属性
root.render(<Hello name="World" />);

这时候浏览器打开 http://localhost:3000/ 就会输出:

Hello World!

创建第一个组件

你可以编辑 App.js 文件,创建自己的第一个组件。下面是一个简单的示例,将 App 组件修改为显示 "Hello, React!":

实例

import React from 'react';
import './App.css';

function App() {
return (
<div className="App">
<header className="App-header">
<h1>Hello, React!</h1>
</header>
</div>
);
}

export default App;

保存文件后,浏览器会自动刷新,你应该会看到页面上显示 "Hello, React!"。

你可以在 src 目录中创建更多的组件文件,例如创建一个 Hello.js 文件:

Hello.js 文件代码:

import React from 'react';

function Hello() {
return <h1>Hello from a new component!</h1>;
}

export default Hello;

然后在 App.js 中导入并使用这个新组件:

实例

import React from 'react';
import './App.css';
import Hello from './Hello';

function App() {
return (
<div className="App">
<header className="App-header">
<Hello />
</header>
</div>
);
}

export default App;

保存文件后,浏览器会自动刷新,你会看到新组件的内容。

AI 思考中...

2 篇笔记 写笔记

  1. #0

    tianqixin

    429***[email protected]

    340

    create-react-app 执行慢的解决方法:

    在使用 create-react-app my-app 来创建一个新的React应用,在拉取各种资源时,往往会非常慢,一直卡在那:

    fetchMetadata: sill mapToRegistry uri http://registry.npmjs.org/whatwg-fetch

    可以看到资源还是使用了 npmjs.org,解决方法是换成淘宝的资源:

    $ npm config set registry https://registry.npm.taobao.org
    -- 配置后可通过下面方式来验证是否成功
    $ npm config get registry
    -- 或 npm info express
    
    tianqixin

    tianqixin

    429***[email protected]

    10年前 (2017年02月14日)
  2. #0

    xjjuser

    xjj***[email protected]

    349

    React 代码的书写格式和以前的 JS 有很大的不同,下面通过对这段代码进行分析了解一下他。

    以前使用 JavaScript 定义一个变量使用 var,ES6 加入了 const 关键字,用来定义一个常量:

    const div = document.createElement('div');

    ReactDOM.render(...) 是渲染方法,所有的 js,html 都可通过它进行渲染绘制,他有两个参数,内容和渲染目标 js 对象。

    内容就是要在渲染目标中显示的东西,可以是一个 React 部件,也可以是一段HTML或TEXT文本。渲染目标JS对象,就是一个DIV或TABEL,或TD 等HTML的节点对象。

    ReactDOM.render(<App />, div);

    unmountComponentAtNode() 这个方法是解除渲染挂载,作用和 render 刚好相反,也就清空一个渲染目标中的 React 部件或 html 内容。

    ReactDOM.unmountComponentAtNode(div);

    xjjuser

    xjj***[email protected]

    8年前 (2018年08月09日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /