React 是一个用于构建用户界面的 JavaScript 库,它可以帮助开发者构建高性能、可维护的 Web 应用程序。以下是一些关于 React 的基础知识和学习资源。

安装 React

在开始之前,您需要安装 Node.js 和 npm。然后,您可以使用以下命令全局安装 React:

npm install -g create-react-app

创建第一个 React 应用

使用 create-react-app 命令可以快速创建一个 React 应用:

create-react-app my-app

进入项目目录并启动开发服务器:

cd my-app
npm start

您应该能在浏览器中看到以下内容:

Welcome to React!

You can edit `src/App.js` and save to reload.

_devtools_/react-devtools.js:1

JSX

React 使用 JSX 语法来描述 UI。JSX 是一种类似 HTML 的语法扩展,它允许您在 JavaScript 中编写标记。

import React from 'react';

function App() {
  return (
    <div>
      <h1>Hello, world!</h1>
    </div>
  );
}

export default App;

组件

React 应用由组件组成。组件是 React 应用中的最小可复用单元。

函数组件

import React from 'react';

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

export default Welcome;

类组件

import React, { Component } from 'react';

class Welcome extends Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

export default Welcome;

状态与属性

组件可以拥有状态和属性。

  • 状态:用于组件内部的数据。
  • 属性:用于从父组件传递数据到子组件。
import React, { Component } from 'react';

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

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

export default Clock;

条件渲染

您可以使用 if 语句或其他条件逻辑来根据条件渲染组件。

import React from 'react';

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

export default Welcome;

列表与键

React 可以渲染列表,并且需要为每个列表元素提供一个唯一的 key 属性。

import React from 'react';

function NumberList(props) {
  const numbers = props.numbers;
  return (
    <ul>
      {numbers.map((number) =>
        <li key={number.toString()}>
          {number}
        </li>
      )}
    </ul>
  );
}

export default NumberList;

表单

React 表单处理通常涉及状态更新。

import React, { Component } from 'react';

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

    this.handleChange = this.handleChange.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
  }

  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}>
        <label>
          Name:
          <input type="text" value={this.state.value} onChange={this.handleChange} />
        </label>
        <input type="submit" value="Submit" />
      </form>
    );
  }
}

export default NameForm;

更多资源

想要了解更多关于 React 的信息,请访问以下链接:

希望这个指南能帮助您开始学习 React!👋

React Logo