【RaETable】🚀🚀🚀一些新功能让你的开发更流畅

raETablereact antd Easy Table 的缩写。旨在让开发者在react中使用 antdTable时更 easy。

Github: github.com/mmdctjj/rae...

npm: www.npmjs.com/package/rae...

文档:mmdctjj.github.io/raetable

🚀 新功能

🎉 支持颜色选择器组件

随着antd版本更新,RaETable进行了底层antd版本升级,^5.4.6 -> ^5.8.4,并且支持了颜色选择组件。

🎉 表格操作栏目功能更加灵活了

本次更新新增了操作栏目按钮的禁用和隐藏,同时新增按钮文本修改。

现在你可以通过判断表格每行的具体内容或者行数,设置按钮的样式和文本。

jsx 复制代码
<ETable
  /** 其他属性 */
  extend={[
    {
      title: (row, idx) => idx % 2 === 0 ? '标记' : '标记2',
      disabled: (row, idx) => idx % 2 === 0,
      onClick,
      loading: (row, idx) => tagLoading,
    }
  ]}
  /** 其他属性 */
/>

🚀 RaETable 解决了啥问题

toB日常的开发中,我们通常要针对一个场景对应的一个或多个数据库表做对应的增删改查的功能。

而在新增或编辑、查询、展示时,对应的很多字段都是重复的。

jsx 复制代码
// 筛选条件
const Condition = () => {
    const [form] = Form.useForm()
    return (
        <Form form={from}>
            <Form.Item name="name" label="name"><Input /></Form.Item>
            <Form.Item name="age" label="age"><Input /></Form.Item>
            <Form.Item name="admin" label="admin"><Input /></Form.Item>
            <!-- 略 -->
        </Form>
    )
}
// 列表展示
const TableList = () => {
    const columns = [
        { title: 'name', dataIndex: 'name', key: 'name' },
        { title: 'age', dataIndex: 'age', key: 'age' },
        { title: 'admin', dataIndex: 'admin', key: 'admin' },
        /** 略 */
    ]
    return (
        <Table columns={columns} dataSources={dataSources} />
    )
}

// 新增或者编辑
const Edit = () => {
    const [form] = Form.useForm()
    return (
        <Form form={from}>
            <Form.Item name="name" label="name"><Input /></Form.Item>
            <Form.Item name="age" label="age"><Input /></Form.Item>
            <Form.Item name="admin" label="admin"><Input /></Form.Item>
            <!-- 略 -->
        </Form>
    )
}

const App = () => {
    return (
        <>
            <Condition />
            <TableList />
            <Drawer>
                <Edit />
            </Drawer>
        </>
    )
}

上面的示例代码是一个很常见的功能,如果采用 RaETable ,那么代码量可能只需要三分之一。如下:

jsx 复制代码
const App = () => {

    const columns = [
        { title: 'name', dataIndex: 'name', key: 'name', conditionType: 'Input', },
        { title: 'age', dataIndex: 'age', key: 'age', conditionType: 'Input', },
        { title: 'admin', dataIndex: 'admin', key: 'admin' },
        /** 略 */
    ]

    return (
        <ETable
            columns={columns}
            dataSources={dataSources}
            extend={
              [
                {
                  title: (row, idx) => idx % 2 === 0 ? '标记' : '标记2',
                  disabled: (row, idx) => idx % 2 === 0,
                  onClick,
                  loading: (row, idx) => tagLoading,
                }
              ]
            }
            // 新增或者编辑之后的回调
            onAffairSuccess={onAffairSuccess}
            // 查询条件变化的回调
            onConditionChange={fetch}
        />
    )
}

💡 往期回顾

相关推荐
要加油哦~1 小时前
前端 | 向后端传数据,判断问题所在的调试过程
前端·javascript·vue.js
中工钱袋3 小时前
Vue 中地址栏参数与 HTTP 请求参数的同步问题
前端·vue.js·http
一只月月鸟呀3 小时前
Vue 过滤器 filter(s) 的使用
javascript·vue.js·ecmascript
zzlyx993 小时前
设备管理系统功能与.NET+VUE(IVIEW)技术实现
前端·vue.js·view design
青红光硫化黑6 小时前
React基础之React.memo
前端·javascript·react.js
m0_616188498 小时前
Vue3 中 Computed 用法
前端·javascript·vue.js
Patrick_Wilson8 小时前
🔥【全网首篇】30分钟带你从0到1搭建基于Lynx的跨端开发环境
前端·react.js·前端框架
逍遥客.8 小时前
uniapp对接打印机和电子秤
javascript·vue.js·uni-app
小满zs8 小时前
React第二十九章(css in js)
前端·react.js