antd Procomponent 使用总结记录

本文总结了在工作中使用 antd Procomponent 的经验,包括ProTable的动态列显隐、ProForm的便捷映射、ModalForm与DrawerForm的页脚定制以及ProFormTimePicker和ProFormText.Password的特定用法。对于ProTable,其提供了参数以简化搜索区域和列的配置。而对于ProForm系列,可以方便地调整页脚按钮位置,ProFormTimePicker能限制时间不早于当前,而ProFormText.Password解决了浏览器自动填充问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

antd Procomponent 是基于 Ant Design 封装的高阶组件,开箱即用。本文只是对在工作中使用 antdPro 的小小记录,若需使用 antd Procomponent,请移步官网

ProTable

Antd Table 的高阶组件,添加可配置化搜索区域,自带 request 请求实现表格的搜索,在使用的过程中发现了在 antd 的 Table 升级的地方:

1. 在新增和查看表单的时候,两个表单页面是共用的,但通常在查看表单页面表格的列会与新增的不同,这就涉及到了表格列的动态显隐,ProTable 提供了一个很好的参数:hideInTable,用起来太爽了吧,少了很少 if 条件去动态判断 columns。


                
### 如何在React项目中使用Ant Design (antd) #### 安装和配置 为了在React项目中集成并使用Ant Design,首先需要安装`antd`库。可以通过npm或yarn来完成这一操作。 ```bash npm install antd --save ``` 或者, ```bash yarn add antd ``` 一旦安装成功,在项目的入口文件(通常是`index.js`或`App.js`)引入Ant Design的核心样式[^1]: ```javascript import 'antd/dist/reset.css'; // Ant Design v5 及以上版本推荐此方式 // 或者对于旧版可以使用如下方法: // import 'antd/dist/antd.css'; ``` #### 使用组件 Ant Design提供了丰富的UI组件集合,可以直接通过解构的方式导入所需的单个组件到应用中。例如要使用按钮组件(Button),可以在相应的JSX文件里这样写: ```javascript import { Button } from 'antd'; function App() { return ( <div> <Button type="primary">Primary Button</Button> </div> ); } export default App; ``` 上述代码展示了如何加载一个带有主要样式的按钮[^2]。 #### 动态加载与按需引入 如果希望减少打包后的体积大小,则建议采用动态加载策略或是利用工具如[babel-plugin-import]来进行按需加载。这不仅能够优化性能还能提升用户体验。 设置babel插件支持按需加载: 修改`.babelrc`或`babel.config.json`文件添加以下内容: ```json { "plugins": [ ["import", {"libraryName": "antd", "style": true}] ] } ``` 此时无需手动导入CSS资源,因为该插件会自动处理它所对应的样式表[^3]。 #### 实现复杂功能的例子——表格筛选与分页 下面给出一段关于如何创建具有过滤、排序以及分页能力的数据展示表格实例: ```javascript import React, { useState } from 'react'; import { Table, Input, Button, Space } from 'antd'; const EditableTable = () => { const [dataSource, setDataSource] = useState([ { key: '1', name: 'John Brown', age: 32, address: 'New York No. 1 Lake Park' }, ... ]); const columns = [ { title: 'Name', dataIndex: 'name', sorter: (a, b) => a.name.localeCompare(b.name), filterDropdown: ({ setSelectedKeys, selectedKeys, confirm }) => ( <Input placeholder='Search Name' value={selectedKeys?.[0]} onChange={(e) => setSelectedKeys(e.target.value ? [e.target.value] : [])} onPressEnter={() => handleFilter(confirm)} /> ), onFilter: (value, record) => record.name.includes(value), }, /* 更多列定义 */ ]; function handleFilter(confirm){ setTimeout(() => { confirm(); }, 0); } return ( <Table dataSource={dataSource} columns={columns} pagination={{ pageSize: 5 }}/> ) }; export default EditableTable; ``` 这段代码片段演示了一个具备基本CRUD操作的可编辑表格结构,并实现了简单的前端数据管理逻辑[^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值