React 组件和 Props

2025-06-07

React 组件和 Props

介绍

React 中的组件是应用程序的构建块。它们是可重用的代码块,可用于构建 UI 的各个部分,而无需将所有内容放在一个文件中。此外,组件还可以包含其他方面,例如状态、属性等。

React 中有两种类型的组件:

  1. 类组件
  2. 功能组件

现在让我们逐一看一下。

类组件

顾名思义,类组件是扩展自 React 组件的 JavaScript 类。它有一个强制的render()方法,该方法返回一个 JSX 元素。React 早期主要基于类,因此我们需要类组件来管理状态。

它看起来是这样的:

import React, { Component } from "react";

class App extends Component {
  render() {
    return (
      <h1>Hello World</h1>
    );
  }
}

export default App;
Enter fullscreen mode Exit fullscreen mode

随着 React Hooks 的引入,类组件实际上已经不再被使用了。如今,大多数专业人士都建议使用函数式组件。

功能组件

功能组件只是一个常规的 JavaScript 函数,它也返回一个 JSX 元素,但它不使用render()方法。

export default function App() {
  return (
   <h1>Hello World</h1>
   );
}
Enter fullscreen mode Exit fullscreen mode

上面的代码是一个返回 JSX 元素的函数式组件。正如你所见,函数式组件比类组件更易读。由于类组件可能更复杂,因此使用函数式组件也更容易。随着 React hooks 的引入,现在可以在函数式组件中声明“状态”。

React 中的 Props

组件的一个重要概念是它们如何通信。React 有一个特殊的对象叫做 props,意思是属性。它用于将数据从父组件传递到子组件。Props 仅以单向流的方式传输数据,即从父组件到子组件。

让我们看看类组件中 props 的使用,我们来看一个非常简单的例子:

import React from "react";

export class Student extends React.Component {
  render() {
   return (
    <h1>Hello, {this.props.name}</h1>
   );
 }
}
Enter fullscreen mode Exit fullscreen mode

在上面的代码中,我们创建了一个 Student 组件,它将返回以下 h1 标签以及传递给它的任何 name 属性。我们需要将该组件导入到父组件(即 App.js 文件)中,并将数据传递给它。

import React from "react";
import Student from "./Student"

export default class App extends React.Component {
 render() {
  return (
   <div className="App">
    <Student name="Rex" />
   </div>
  );
 }
}
Enter fullscreen mode Exit fullscreen mode

这将返回一个带有 name 属性的简单 h1 标签,该标签传递给组件,如下所示。

类组件属性

现在让我们看看如何在功能组件中使用 props。

import React from "react";

export default function Student({firstName, lastName}) {
  return (
    <div>
      <h1>First Name: {firstName}</h1>
      <h2>Last Name: {lastName}</h2>
    </div>
  );
} 
Enter fullscreen mode Exit fullscreen mode

如您所见,我们解构了我们想要从父组件传递的 props。

import React from "react";
import Student from "./Student";

function App() {
  return (
    <div className="App">
      <Student firstName="John" lastName="Doe" />
    </div>
  );
}

export default App;
Enter fullscreen mode Exit fullscreen mode

在App.js文件中传递我们想要的 props 之后,渲染结果将如下所示:

功能组件 props

结论

我们已经了解了如何在组件之间传递 props,以及为什么函数式组件比类组件更受欢迎。props 可以用来传递数据,但不能用来操作数据。

感谢您的阅读!

文章来源:https://dev.to/killerkvothe117/react-components-and-props-32fc
PREV
应用程序开发的第一步🧐
NEXT
我最常遇到的 React 错误以及如何修复它们