1. 组件:组件是构建React应用程序的基本单位。它们是可重用的独立部分,可以组合在一起以构建复杂的用户界面。组件可以是简单的html元素(如按钮或文本框),也可以是更复杂的自定义组件。
2. 状态:在React中,每个组件都有一个与之关联的状态(state)。状态是一个JavaScript对象,用于存储组件的数据。当组件的状态发生变化时,它会重新渲染以反映这些更改。
3. 属性:组件可以有属性(props),它们是组件的配置选项。属性可以是任何类型的数据,包括字符串、数字、布尔值、对象或数组。它们从父组件传递到子组件,并在组件内部使用。
4. 生命周期方法:React组件具有一系列生命周期方法,这些方法在组件的不同阶段被调用。例如,`componentDidMount`在组件首次渲染后调用,`componentDidUpdate`在组件更新后调用。生命周期方法是执行诸如获取数据、订阅事件或执行异步操作等任务的关键。
5. 渲染:在React中,组件的输出是通过render方法定义的。render方法返回一个虚拟DOM元素(通常是一个JSX元素),描述了组件在屏幕上应该呈现的外观。React使用虚拟DOM来提高性能,通过比较新旧虚拟DOM之间的差异,只更新实际更改的部分。
6. 事件处理:React提供了一种声明式的方式来处理用户与界面交互时触发的事件。事件处理程序作为组件的属性传递,并在组件内部使用。当事件发生时,处理程序会被调用,并更新组件的状态或触发父组件的更改。
下面是一个简单的React组件示例,它显示一个计数器应用程序:
```jsx
import React from 'react';
class Counter extends React.Component {
constructor(props) {
super(props);
this.state = { count: 0 };
}
increment() {
this.setState({ count: this.state.count + 1 });
}
render() {
return (
<div>
<h1>Count: {this.state.count}</h1>
<button onClick={() => this.increment()}>Increment</button>
</div>
);
}
}
export default Counter;
```
这个例子展示了React组件的基本结构和工作原理。`Counter`组件具有一个状态属性`count`,初始值为0。它还定义了一个`increment`方法,该方法通过调用`setState`更新状态来增加计数器的值。在`render`方法中,组件返回一个包含当前计数值和“Increment”按钮的JSX元素。当按钮被点击时,`increment`方法会被调用,从而触发组件的重新渲染。