React 是一个用于构建用户界面的 JavaScript 库,由 Facebook 开发。它允许开发者使用声明式编程方法构建高性能的 UI。
快速开始
- 安装 Node.js 和 npm:React 需要Node.js 和 npm 来运行。
- 创建一个新的 React 应用:使用
create-react-app
命令来快速搭建一个 React 应用。 - 编写组件:React 应用由组件组成,每个组件负责渲染 UI 的一部分。
组件
React 组件是构成 React 应用的基本单位。组件可以是无状态的,也可以是有状态的。
无状态组件
无状态组件是最简单的组件类型,它们不维护自己的状态。
function Greeting(props) {
return <h1>Hello, {props.name}</h1>;
}
有状态组件
有状态组件可以维护自己的状态,并且可以在状态变化时更新 UI。
class Clock extends React.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>
);
}
}
JSX
JSX 是 JavaScript 的语法扩展,它看起来类似于 HTML,但允许你在 JavaScript 中编写 HTML。
const element = <h1>Hello, world!</h1>;
生命周期
React 组件有多个生命周期方法,这些方法在组件的不同阶段被调用。
componentDidMount
: 组件已挂载到 DOM 上。componentDidUpdate
: 组件更新后。componentWillUnmount
: 组件将要卸载。
class Clock extends React.Component {
componentDidMount() {
this.timerID = setInterval(
() => this.tick(),
1000
);
}
componentWillUnmount() {
clearInterval(this.timerID);
}
tick() {
this.setState({
date: new Date()
});
}
render() {
return (
<div>
<h1>Hello, world!</h1>
<h2>It is {this.state.date.toLocaleTimeString()}.</h2>
</div>
);
}
}
路由
React Router 是一个用于在 React 应用中添加路由功能的库。
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
function App() {
return (
<Router>
<Switch>
<Route path="/about">
<About />
</Route>
<Route path="/">
<Home />
</Route>
</Switch>
</Router>
);
}
更多关于 React 的信息,请访问我们的React 官方文档。