Skip to content

React 快速入门指南

React 是 Facebook 开发的一个用于构建用户界面的 JavaScript 库。通过使用组件化的结构,React 允许开发者快速构建复杂且可重用的 UI 代码。这篇文章将为你提供一个 React 的简明入门。

1. 安装与创建新项目

使用 Create React App(CRA)是开始 React 开发的最快方法。只需运行以下命令:

bash
npx create-react-app my-app
cd my-app
npm start

此命令将创建一个新的 React 应用并启动一个本地开发服务器。

2. JSX 简介

JSX 是 JavaScript 的扩展,它允许你在 JavaScript 中书写类似 HTML 的代码。例如:

jsx
const element = <h1>Hello, world!</h1>;

3. 组件与 Props

在 React 中,UI 被划分为一系列的组件。每个组件代表 UI 的一部分。

例如,一个简单的组件如下:

jsx
function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

你可以这样使用这个组件:

jsx
<Welcome name="React" />

4. State 与生命周期

在 React 中,每个组件都有其自己的 state。当 state 更改时,组件会重新渲染。

例如:

jsx
class Clock extends React.Component {
  constructor(props) {
    super(props);
    this.state = { date: new Date() };
  }

  render() {
    return (
      <div>
        <h1>Hello, world!</h1>
        <h2>现在是 {this.state.date.toLocaleTimeString()}.</h2>
      </div>
    );
  }
}

5. 事件处理

React 的事件处理与 DOM 元素的事件非常相似,但使用驼峰命名法,并传递一个函数作为事件处理程序,而不是一个字符串。

例如:

jsx
<button onClick={this.handleClick}>Click me</button>

6. 条件渲染

在 React 中,你可以使用条件(如 if 或三元运算符)来创建不同的渲染输出:

jsx
function Greeting(props) {
  if (props.isLoggedIn) {
    return <h1>Welcome back!</h1>;
  }
  return <h1>Please sign up.</h1>;
}

7. 列表与 Keys

你可以使用 map() 函数来遍历数组,并将其转换为元素列表:

jsx
const numbers = [1, 2, 3, 4, 5];
const listItems = numbers.map((number) => (
  <li key={number.toString()}>{number}</li>
));

8. 表单

在 React 中,表单元素(如 <input><textarea><select>)的工作方式略有不同,因为组件会跟踪一些值通过 state。

jsx
class NameForm extends React.Component {
  constructor(props) {
    super(props);
    this.state = { value: "" };
  }

  handleChange(event) {
    this.setState({ value: event.target.value });
  }

  handleSubmit(event) {
    alert("A name was submitted: " + this.state.value);
    event.preventDefault();
  }

  render() {
    return (
      <form onSubmit={this.handleSubmit.bind(this)}>
        <label>
          Name:
          <input
            type="text"
            value={this.state.value}
            onChange={this.handleChange.bind(this)}
          />
        </label>
        <input type="submit" value="Submit" />
      </form>
    );
  }
}

9. 提升 State

当多个组件需要反映相同的变化数据时,建议将共享状态提升到它们的最近共同父组件中。这样你可以确保数据在组件树中自上而下地流动,这有助于保持代码的一致性和可读性。

结尾

这只是一个 React 的简单入门,但已经涵盖了你开始开发的大部分基础知识。要深入了解,建议访问 React 的官方文档,那里有更详细的教程和指导资料。

祝你学习愉快!