antd源码分析之——折叠面板(collapse)

本文分析了antd的折叠面板组件Collapse及其内部组件RcCollapse的源码,重点探讨了组件结构、设计模式的运用,包括聪明组件与傻瓜组件模式以及组合组件模式。同时提到了在RcCollapse中如何通过React.Children.map和React.cloneElement来优化Panel的管理和渲染逻辑,降低组件成本。
摘要由CSDN通过智能技术生成

官方文档 https://ant.design/components/collapse-cn/

 

目录

一、antd中的collapse

  代码目录

  1、组件结构图(♦♦♦重要)

  2、源码节选:antd/components/collapse/collapse.tsx

  3、源码节选:antd/components/collapse/CollapsePanel.tsx

 二、RcCollapse

  代码目录

  1、组件内部属性结构及方法调用关系图(♦♦♦重要

  2、组件应用的设计模式(♦♦♦重要

  3、源码节选:rc-collapse/Collapse.jsx

  4、源码节选:rc-collapse/panel.jsx

  

一、antd中的collapse

antd组件中有些使用了React 底层基础组件(查看具体列表点这里),collapse就是这种类型的组件

antd中collapse主要源码及组成结构如下,其中红色标注的Rc开头的组件是React底层基础组件

 代码目录

1、组件结构图:
 

2、antd/components/collapse/collapse.tsx
export default class Collapse extends React.Component<CollapseProps, any> {
  static Panel = CollapsePanel;

  static defaultProps = {
    prefixCls: 'ant-collapse',
    bordered: true,
    openAnimation: { ...animation, appear() { } },
  };

  renderExpandIcon = () => {
    return (
      <Icon type="right" className={`arrow`} />
    );
  }

  render() {
    const { prefixCls, className = '', bordered } = this.props;
    const collapseClassName = classNames({
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值