当前位置: 首页 > news >正文

dz网站自己做的模板放在哪里苏州百度推广代理商

dz网站自己做的模板放在哪里,苏州百度推广代理商,网页设计的工具有哪些,icp备案添加网站需求背景:使用折叠面板的形式展示数据,面板内部数据需要在打开时请求接口获取。 遇到问题:最开始使用Antd 的折叠面板组件,它对于数据直接渲染是没问题的,但是不好满足打开面板时再动态加载数据的需求,于是…

需求背景:使用折叠面板的形式展示数据,面板内部数据需要在打开时请求接口获取。

遇到问题:最开始使用Antd 的折叠面板组件,它对于数据直接渲染是没问题的,但是不好满足打开面板时再动态加载数据的需求,于是自己手写了一个。

效果展示(已脱敏):
在这里插入图片描述

话不多说,以下是手写的组件代码:

面板的header 内容结构可以根据自己需要调整

/* eslint-disable @typescript-eslint/no-unused-vars */
import { DownOutlined, RightOutlined } from '@ant-design/icons';
import { Col, Row } from 'antd';
import { useRef, useState } from 'react';
import './style.less';
// 内容
import TableList from './TableList';/** ===================================* @names: 自定义折叠面板业务组件* @description:* @author:* @date: 2024-06-20*======================================*/export default function CollapseList(props: any) {const [active, setActive] = useState(false);const tableRef = useRef<any>();return (<div className="collapse-item"><div className="collapse-item-header"><Row><Col span={12}><div>test</div></Col><Col span={8}><div>2022-06-20</div></Col><div className="expand">{!active ? (<divclassName="expandIconCpe"onClick={() => {setActive(!active);// 点击展开时调用子组件加载数据的方法请求tableRef.current?.handleGetData();}}>展开<RightOutlined /></div>) : (<divclassName="expandIconCpe"onClick={() => {setActive(!active);}}>收起<DownOutlined /></div>)}</div></Row></div><divclassName={active ? 'collapse-item-content-active' : 'collapse-item-content-hide'}>{/* 面板内容,可以自定义,我这里是封装了一个表格组件 用ref绑定 */}<TableList ref={tableRef} /></div></div>);
}

样式css:

.collapse-item {border-bottom: 1px solid rgba(5, 5, 5, 6%);border-radius: unset;.collapse-item-header {position: relative;padding: 12px 16px;color: rgba(0, 0, 0, 88%);cursor: pointer;.expand {font-size: 12px;position: absolute;right: 16px;}.expandIconCpe {color: #0065ff !important;}}.collapse-item-content-hide {display: none;}.collapse-item-content-active {display: block;background-color: #fff;}.ant-table-tbody > tr:last-child > td {border-bottom: none;}.ant-row {flex-wrap: nowrap;word-break: break-all;}
}

面板内容组件中写接口请求,使用 forwardRef + useImperativeHandle让父组件调用子组件的方法。

核心代码:


import { forwardRef, useImperativeHandle} from 'react';interface TableRef {handleGetData: (params: any) => void;
}
const TableList = forwardRef<TableRef>((props, ref) => {// 子组件中useImperativeHandle(ref, () => ({// handleGetData是暴露给父组件的方法handleGetData: (params: any) => {// 这里可以自定义封装接口请求,然后渲染数据},}));
})export default TableList;

Tips:
为了提高性能,不让每次点击展开都去发起请求,可以在请求成功一次结果后,设置一个标记,下次再点击展开时,判断如果已经标记请求成功过了,就不发起请求,展示上一次结果。

http://www.fp688.cn/news/155994.html

相关文章:

  • 实业 东莞网站建设百度指数的网址
  • 成都人高清影院品牌加盟seo从零开始到精通200讲解
  • 信息发布网站开发爱上链外链购买平台
  • 香港空间做网站速度慢的解决方法建立网站要多少钱一年
  • 临时域名 wordpressseo在线教程
  • 女生做seo网站推广枫树seo网
  • 公安部备案网站备案小熊猫seo博客
  • 道滘仿做网站软考十大最靠谱it培训机构
  • 华铭保信建筑公司网站谷歌seo搜索引擎优化
  • 大朗网站制作深圳seo推广培训
  • 海口网站建设费用社区推广
  • 深圳网站设计招聘信息最有效的app推广方式有哪些
  • 免费手机端网站模板下载安装百度推广客户端怎么登陆
  • 中国建材网站网络营销案例100例
  • 徐州如何提高网站建设体验营销是什么
  • 西安网站建设公司找哪家seo引擎优化是做什么的
  • 网站充值功能怎么做百度网络营销中心app
  • 做网站被诈骗免费搭建网站
  • 页面效果华丽的网站百度账号客服人工电话
  • vs2017做的网站如何发布湖南有实力seo优化
  • 国外 外贸 网站 源码网站注册账号
  • 一个公司设计网站怎么做seo自动优化软件下载
  • 企业电子商务网站开发郑州网络推广方案
  • 用wordpress还是discuz南宁百度seo建议
  • 稳稳在哪个网站做的消防直播域名解析网站
  • 虚拟机可以做多个网站好看的网页设计作品
  • 顺企网江西网站建设seo怎么学在哪里学
  • 晋城商城网站开发设计山西网络推广专业
  • 南宁网站建设公司怎么赚钱网站运营公司
  • 政府网站建设和使用带来哪些积极影响推广