理解React.js组件:函数式、类、状态、属性和钩子

2025-03-29T12:37:14+08:00 | 3分钟阅读 | 更新于 2025-03-29T12:37:14+08:00

Macro Zhao

理解React.js组件:函数式、类、状态、属性和钩子

推荐超级课程:

@TOC

React.js是一个流行的JavaScript库,用于构建用户界面,它围绕组件的概念展开。组件是React应用程序的构建块,允许您创建模块化、可重用和封装的用户界面片段。每个组件代表一个自包含的单位,可以有自己的状态、属性(props)和生命周期方法。让我们探讨一些其他关键的React组件类型:

  1. 函数式组件:

函数式组件是最简单的React组件类型。它们被定义为返回JSX(JavaScript XML)以描述UI的JavaScript函数。函数式组件默认是无状态的,这意味着它们不管理自己的状态。它们通过属性接收数据,主要用于渲染UI元素。

函数式组件的示例:

import React from 'react';

const FunctionalComponent = (props) => {
  return <div>{props.text}</div>;
};

export default FunctionalComponent;
  1. 类组件:

类组件是定义React组件的较老方式。它们是扩展React.Component类的JavaScript类。类组件可以有自己的状态和生命周期方法,适用于更复杂的交互和逻辑。

类组件的示例:

import React, { Component } from 'react';

class ClassComponent extends Component {
  render() {
    return <div>{this.props.text}</div>;
  }
}

export default ClassComponent;
  1. 状态和属性:

属性(props)用于将数据从父组件传递给子组件。属性是只读的,帮助组件相互通信。另一方面,状态用于管理组件的内部数据,并且可以随时间变化,触发重新渲染。

使用属性的示例:

import React from 'react';

const Greeting = (props) => {
  return <div>Hello, {props.name}!</div>;
};

使用状态的示例:

import React, { Component } from 'react';

class Counter extends Component {
  constructor(props) {
    super(props);
    this.state = { count: 0 };
  }

  render() {
    return (
      <div>
        <p>Count: {this.state.count}</p>
        <button onClick={() => this.setState({ count: this.state.count + 1 })}>
          Increment
        </button>
      </div>
    );
  }
}
  1. 生命周期方法:

类组件有一个生命周期,包括挂载、更新和卸载等阶段。这些阶段由生命周期方法控制,允许您在组件生命周期的特定时间执行操作。

类组件中生命周期方法(componentDidMount)的示例:

import React, { Component } from 'react';

class MyComponent extends Component {
  componentDidMount() {
    // 组件挂载(添加到DOM)后,此代码运行。
    console.log('Component mounted');
  }

  render() {
    return <div>My Component</div>;
  }
}
  1. 钩子(函数式组件增强):

钩子是在React 16.8中引入的,用于在函数式组件中使用状态和其他React特性,而不使用类组件。像useStateuseEffectuseContext这样的钩子使您能够在函数式组件中直接管理状态和副作用。

使用useState钩子的示例:

import React, { useState } from 'react';

const Counter = () => {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
};

这些只是React组件的核心概念和类型的一小部分。React提供了一个丰富的组件和库生态系统,适用于不同的用例和场景。掌握这些概念后,您将能够使用React.js构建复杂且高效的用户界面。

© 2011 - 2025 Macro Zhao的分享站

关于我

如遇到加载502错误,请尝试刷新😄

Hi,欢迎访问 Macro Zhao 的博客。Macro Zhao(或 Macro)是我在互联网上经常使用的名字。

我是一个热衷于技术探索和分享的IT工程师,在这里我会记录分享一些关于技术、工作和生活上的事情。

我的CSDN博客:
https://macro-zhao.blog.csdn.net/

欢迎你通过评论或者邮件与我交流。
Mail Me

推荐好玩(You'll Like)
  • AI 动·画
    • 这是一款有趣·免费的能让您画的画中的角色动起来的AI工具。
    • 支持几十种动作生成。
我的项目(My Projects)
  • 爱学习网

  • 小乙日语App

    • 这是一个帮助日语学习者学习日语的App。
      (当然初衷也是为了自用😄)
    • 界面干净,简洁,漂亮!
    • 其中包含 N1 + N2 的全部单词和语法。
    • 不需注册,更不需要订阅!完全免费!
  • 小乙日文阅读器

    • 词汇不够?照样能读日语名著!
    • 越读积累越多,积跬步致千里!
    • 哪里不会点哪里!妈妈再也不担心我读不了原版读物了!
赞助我(Sponsor Me)

如果你喜欢我的作品或者发现它们对你有所帮助,可以考虑给我买一杯咖啡 ☕️。这将激励我在未来创作和分享更多的项目和技术。🦾

👉 请我喝一杯咖啡

If you like my works or find them helpful, please consider buying me a cup of coffee ☕️. It inspires me to create and share more projects in the future. 🦾

👉 Buy me a coffee