详解react如何实现复合组件

 更新时间:2024年10月30日 08:49:45   作者:omijer  
在一些react项目开发中,常常会出现一些组合的情况出现,这篇文章主要为大家介绍了复合组件的具体实现,感兴趣的小伙伴可以跟随小编一起学习一下

需求点

在一些react项目开发中,常常会出现一些组合的情况出现,比如一个card组件中,可能有以下几个组合功能

  • Haeder组件
  • Content组件
  • Footer组件

用户需要在不同的环境下去使用card组件,可能不需要Header或者footer, 这种情况下,常见的条件渲染会使组件的逻辑变得复杂与难于组合,因此,复合组件的方式就是为了解决以上需求

具体实现

1.使用vite创建工程

npm init vite@latest

2.创建components文件夹,创建Card.tsx组件

import { PropsWithChildren } from "react";
import { CardProps } from "./type";
import "./card.css";

const Card = ({ children }: CardProps) => {

    return <div className="card">{children}</div>;

};


// card header

Card.Haeder = ({ children }: PropsWithChildren) => {

    return (
        <div className="header">
            <span>{children}</span>
        </div>
    );
};
 
// card content
Card.Content = ({ children }: PropsWithChildren) => {
    return <div className="content">{children}</div>;
};

// card footer
Card.Footer = ({ children }: PropsWithChildren) => {
    return <div className="footer">{children}</div>;
};

export default Card;

实现效果

1.在App组件中组合使用

import Card from "./components/Card";

function App() {
    return (
        <div className="app">
            <Card>
                <Card.Haeder>card标题</Card.Haeder>
                <Card.Content>neirong</Card.Content>
                <Card.Footer>
                    <div className="footer-btn">
                        <button>取消</button>
                        <button>确认</button>
                    </div>
                </Card.Footer>
            </Card>
        </div>
        );
 }

export default App;

2.组件效果

总结

利用了js函数是一个对象的特性,为主函数增加组合的属性,在组件使用的时候,可以方便的组合使用

使用了children props,可以方便使用者将任意的结构传入组件内部

可以继续扩展在复合组件内部使用context, 全局管理组件,可以管理组件内部的状态

到此这篇关于详解react如何实现复合组件的文章就介绍到这了,更多相关react实现复合组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • React实现类似淘宝tab居中切换效果的示例代码

    React实现类似淘宝tab居中切换效果的示例代码

    这篇文章主要介绍了React实现类似淘宝tab居中切换效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • React实现图片缩放的示例代码

    React实现图片缩放的示例代码

    这篇文章主要为大家详细介绍了如何使用React实现图片缩放的功能,文中的示例代码讲解详细,具有一定的参考价值,感兴趣的小伙伴可以了解下
    2023-10-10
  • React实现下拉框的key,value的值同时传送

    React实现下拉框的key,value的值同时传送

    这篇文章主要介绍了React实现下拉框的key,value的值同时传送方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • React组件重构之嵌套+继承及高阶组件详解

    React组件重构之嵌套+继承及高阶组件详解

    这篇文章主要给大家介绍了关于React组件重构之嵌套+继承及高阶组件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • react结合bootstrap实现评论功能

    react结合bootstrap实现评论功能

    这篇文章主要为大家详细介绍了react结合bootstrap实现评论功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • react+typescript中使用echarts的实现步骤

    react+typescript中使用echarts的实现步骤

    本文主要介绍了react+typescript中使用echarts的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • ReactHook使用useState更新变量后,如何拿到变量更新后的值

    ReactHook使用useState更新变量后,如何拿到变量更新后的值

    这篇文章主要介绍了ReactHook使用useState更新变量后,如何拿到变量更新后的值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • React 中如何将CSS visibility 属性设置为 hidden

    React 中如何将CSS visibility 属性设置为 hidden

    这篇文章主要介绍了React中如何将CSS visibility属性设置为 hidden,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • 一文搞懂 React 18 中的 useTransition() 与 useDeferredValue()

    一文搞懂 React 18 中的 useTransition() 与 useDeferredValue()

    这篇文章主要介绍了一文搞懂 React 18 中的 useTransition()与useDeferredValue(),文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • React如何创建组件

    React如何创建组件

    本文我们将介绍 React中组件的类别,以及如何创建和使用组件。具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06

最新评论