自定义hooks快速写一个列表界面usePageList

4 篇文章 0 订阅

如何快速的写一个列表界面?

  • 归纳功能:搜索,表格,分页,删除,表格列表项操作

  • 分点实现:搜索组件+表格组件+分页组件

    1.1 搜索组件

  • 组件目录: components/NormalSearch

  • 输入: definition/searchItems,配置每一个搜索组件的信息

export const metric = [
  {
    display: 'select',
    placeholder: '全部类型',
    name: 'metricType',
    options: metricTypes.options,
  },
  {
    display: 'timePicker',
    width: 340,
    label: '最新修改时间:',
    name: 'updateTimeStart,updateTimeEnd',
  },
  {
    display: 'input',
    placeholder: '搜索指标名称/创建人',
    name: 'metricName',
  },
];
  • 实现:时间输入框,搜索框,input输入框,下拉框、单选框、复选框、 分段器等形态,以及重置和查询功能
  • 输出:搜索参数,类型为Record<string, string>, 在主业务只关注这些搜索参数值
{
	"metricType":0,
	"updateTimeStart":"2022-02-27 00:00:00",
	"updateTimeEnd":"2022-03-28 23:59:59",
	"metricName":"分析"
}
1.2 列表数据交互

使用customHooks中的usePageList统一处理
实现功能: 列表数据获取、搜索列表,分页,排序,删除

  • colums传参: definition/columns
{
    title: '事件中文名',  // 表头名字
	dataIndex: 'eventName',  // 索引key
	ellipsis: true,			// 是否显示省略号
	width: 200,				// 固定宽度
	sorter: {				// 是否排序,multiple是排序的优先值
		multiple: 1,
	},
}

  • hooks传参:
listFnStr: 'source.getDomains' 从services中解析出列表获取函数
addParams: 初始化调用的时候,自定义参数
deleteFnStr:删除列表项的函数
pageSize: 分页参数
  • 返回值:
pagination:分页参数
changeSearchParams:搜索值发生改动,搜索操作
tableData: 表格数据
handleTableChange: 排序传值
onNormalDelete: 删除函数
loading: 加载状态

完整的功能使用:
usePageList

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值