Coursera 笔记

Module 02 · Understanding Function Components with Array and DOM Manipulation函数组件、数组与 DOM 操作

Component Composition组件组合

Coursera ↗

欢迎来到 组件组合 的学习!通过观看本视频,你将能够:

  • 描述组件组合的目的
  • 解释函数组件组合的原则
  • 提供组件组合的示例

什么是组件组合?

组件组合允许你将多个组件组合起来,构建更复杂的功能。通过使用函数组件,你可以将多个小的组件组合起来,创建出更复杂的 UI 结构,就像使用小的积木搭建一个更大的结构。


组件组合的原则

在进行组件组合时,有几个核心原则需要理解,包括:

  1. 抽象(Abstraction)
  2. 可重用性(Reusability)
  3. 层次结构(Hierarchy)
  4. Props 和 Children
  5. 高阶组件(Higher-Order Components, HOCs)

抽象(Abstraction)

抽象原则意味着你可以创建可重用的组件,将 UI 功能进行封装。通过这种方式,可以将一个庞大的 UI 结构分解成多个较小的代码块,便于组织和维护。组件组合使得这些代码块可以被重复使用,从而避免代码重复。

可重用性(Reusability)

通过组件组合,你可以创建可重用的组件,不必在每次需要时重新编写相同的代码。这样,组件可以灵活地应用在不同的地方。

层次结构(Hierarchy)

组件组合支持将组件组织成父子层次结构。这样的层次结构帮助组织代码并推动模块化设计,使组件之间的数据传递更加清晰和容易管理。

Props 和 Children

组件组合使得数据传递变得更加简单。Props 允许父组件向子组件传递数据,Children 使得父组件可以将整个子组件传递给其他组件。

高阶组件(Higher-Order Components, HOCs)

高阶组件是一种函数,它接受一个组件作为输入并返回一个增强功能的组件。HOCs 允许你在不修改组件实现的情况下,为组件添加新的功能,如状态管理或逻辑。


组件组合示例

我们来通过一个实际的示例来展示这些组合原则的使用方法。假设我们正在构建一个用于写作小说的博客。以下代码展示了如何将不同功能的组件封装起来,创建一个通用的博客文章组件,包含标题、作者、类型和描述等内容。

代码示例:博客组件的组合

在实际应用中,通常你会将这些组件组织成不同的文件,以提高代码的组织性和可维护性。

1.标题组件(Title Component)

import React from 'react';

function Title(props) {
  return <h1>{props.title}</h1>;
}

export default Title;

2.作者组件(Author Component)

import React from 'react';

function Author(props) {
  return <h3>{props.author}</h3>;
}

export default Author;

3.描述组件(Description Component)

import React from 'react';

function Description(props) {
  return <p>{props.description}</p>;
}

export default Description;

4.类型组件(Type Component)

import React from 'react';

function Type(props) {
  return <p>{props.type}</p>;
}

export default Type;


高阶组件(Higher-Order Component)

接下来,我们创建一个高阶组件,这个组件将所有其他组件组合在一起,形成一个完整的博客页面。

import React from 'react';
import Title from './Title';
import Author from './Author';
import Description from './Description';
import Type from './Type';

function NovelBlog(props) {
  return (
    <div>
      <Title title={props.title} />
      <Author author={props.author} />
      <Type type={props.type} />
      <Description description={props.description} />
    </div>
  );
}

export default NovelBlog;


主应用组件(Main App Component)

最后,我们在主应用组件中使用上述所有组件,来构建一个完整的页面。

import React from 'react';
import NovelBlog from './NovelBlog';

function App() {
  const blogData = {
    title: "小说标题",
    author: "作者姓名",
    description: "小说描述",
    type: "小说类型"
  };

  return <NovelBlog {...blogData} />;
}

export default App;

在这个例子中,我们将 NovelBlog 组件嵌套在主应用组件中,并传递了标题、作者、描述和类型等数据。


总结

在本视频中,你学习了如何通过组件组合将小的组件组合成复杂的 UI。组件组合的原则包括:

  • 抽象(Abstraction):使代码模块化,便于重用和维护。
  • 可重用性(Reusability):组件可以多次使用,而无需重复编写相同的代码。
  • 层次结构(Hierarchy):将组件组织成父子层次,简化数据传递和代码管理。
  • Props 和 Children:通过 props 传递数据,子组件可以通过 children 传递给父组件。
  • 高阶组件(HOCs):使用高阶组件来扩展已有组件的功能。

通过这些原则,你可以在 React 中高效地构建和维护复杂的 UI。🎉


继续加油,掌握更多 React 的精髓!🚀