【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}
        />
    )
}

💡 往期回顾

相关推荐
代码熊崽的编程森林12 小时前
vue + onlyoffice 自定义插件的实现(OnlyOffice 插件:AI 智能编辑)。
前端·javascript·vue.js
Lucky_Turtle12 小时前
【Vue】element plus Slider小数组件设置顺滑程度
前端·javascript·vue.js
光影少年13 小时前
react的Context 跨层传值、优缺点、适用场景
前端·react.js·掘金·金石计划
上单带刀不带妹13 小时前
Vue3 中 getCurrentInstance() 与 proxy 详解
前端·javascript·vue.js
许彰午15 小时前
32 个 Vue 组件的设计取舍
前端·javascript·vue.js
前端繁华如梦15 小时前
不写模型文件,用代码「捏」出 3D 世界:Vue3 + Three.js 程序化资产生成实战
前端·vue.js
劉三岁16 小时前
Git 给 main 分支打 Tag(版本标记)完整教程
vue.js·github
zifengningyu16 小时前
【无标题】
前端·vue.js
JiaWen技术圈16 小时前
React Server Functions 深度解析
前端·react.js·前端框架
JiaWen技术圈17 小时前
React 19 并发渲染器:全面解析与实战指南
前端·react.js·前端框架