📅  最后修改于: 2023-12-03 14:46:59.967000             🧑  作者: Mango
在 React 中,组件是构建应用程序的基本单元。React 组件可以分为两种类型:类组件和函数组件。在本文中,我们将探讨 React 中函数组件和类组件之间的区别。
React 函数组件是一个 JavaScript 函数,它接受一个包含 props 数据的对象作为其输入,并返回一个可以呈现在屏幕上的元素或一组元素。函数组件不需要继承 React.Component 类,没有状态或生命周期方法。
以下是一个简单的 React 函数组件示例。
import React from 'react'
function Hello(props) {
return <h1>Hello {props.name}!</h1>
}
export default Hello
在上述代码中,我们定义了一个名为 Hello 的函数组件。它接收一个名为 props 的对象作为其参数,它只返回一个包含 Hello ${props.name}!
字符串的 <h1>
元素。
React 类组件是基于 ES6 类的组件。与 React 函数组件不同,React 类组件可以继承自 React.Component 类,具有生命周期和状态管理方法。以下是一个简单的 React 类组件示例。
import React, { Component } from 'react';
class Hello extends Component {
render() {
return (
<h1>
Hello {this.props.name}!
</h1>
);
}
}
export default Hello
我们定义了一个名为 Hello 的 React 类组件。它可以通过扩展 React.Component 来公开 render() 方法。在 render() 方法中,它使用 this.props.name
属性返回一个包含 Hello ${this.props.name}!
字符串的 <h1>
元素。
以下是 React 函数组件和类组件之间的一些显著区别。
React 类组件具有生命周期方法,如 componentDidMount(),componentDidUpdate(),componentWillUnmount() 等。但是,函数组件并没有这些方法。然而,从 React 16.8 开始,我们可以使用 React Hooks 在函数组件中使用生命周期和状态。
React 类组件具有 state 属性和 setState() 方法,而函数组件没有。但是,和生命周期一样,我们可以使用 React Hooks 在函数组件中使用状态。
React 类组件比函数组件结构更大。它们需要继承自 React.Component 并在 render() 方法中呈现 UI。相比之下,函数组件更简洁,因为它们只需要一个函数,它直接在 return 语句中呈现 UI。
React 类组件和函数组件都是构建应用程序的有效工具。函数组件更易于理解和编写,并且比类组件更直接。然而,对于更复杂的应用程序,需要使用类组件的状态和生命周期方法。现在,我们可以使用 React Hooks 在函数组件中使用状态和生命周期方法,这使得函数组件成为一种相当强大的技术。