代码拉取完成,页面将自动刷新
何时使用该组件库:
从 1.1.0 到 以后的版本,antd 只要是无痛升级,本 library 也是无痛升级
如果官网暂时不能访问,直接看 Started 的 demo 搭建应用,hooks 可以 clone 本仓库后本地看 demo ^_&
Gitee:
art-antd-react gitee 官网 国内的访问此链接较快(可能存在滞后性)
github:
npm i art-antd-react
# or
yarn add art-antd-react
# 在入口引入以下文件(这是antd的默认主题样式,如果要引入其他主题样式可以在项目中按照 https://ant-design.gitee.io/docs/react/use-with-create-react-app-cn 覆盖即可)
import "art-antd-react/dist/esm/styles/defaultAntdCss.css"
FormItemsBuilder 的目的是使用配置化的思想来帮助我们快速的生成 Form.Item 和其 Children 的标签,但建议只有必须要把 Form.Item 分组之类的场景时才使用该组件,如 demo2,否则建议使用 FormGenerator ,如果要单独使用则和 Form 组件搭配使用
// 这些组件或者 Props API 也可以从 antd 或者 art-antd-react 中导出
// import {
// Button,
// Col,
// Form,
// InputNumberProps,
// InputProps,
// Row,
// SelectProps,
// } from "antd";
import {
Button,
Col,
Form,
FormItemConfig,
FormItemsBuilder,
InputNumberProps,
InputProps,
RenderType,
Row,
SelectProps,
} from 'art-antd-react'; // 内部也将 antd 的直接导出组件和props 导出了
const Demo1 = () => {
const [form] = Form.useForm();
const mockOptions = [
{
label: 'mock1',
value: 'mock1',
},
{
label: 'mock2',
value: 'mock2',
},
{
label: 'mock3',
value: 'mock3',
},
];
const formItemsConfig: FormItemConfig[] = [
{
renderType: RenderType.Input,
formItemProps: {
name: 'name',
label: '姓名',
},
formItemChildProps: {
placeholder: '请输入名字',
} as InputProps,
},
{
renderType: RenderType.Select,
formItemProps: {
name: 'hobby',
label: '爱好',
},
formItemChildProps: {
placeholder: '请选择',
options: mockOptions,
} as SelectProps,
},
{
renderType: RenderType.InputNumber,
formItemProps: {
name: 'number',
label: '年龄',
},
formItemChildProps: {
placeholder: '请输入数字',
// 类名 style 等都可以直接写成 key-value 的形式
style: { width: '100%' },
// 当需要提示或者静态检查时推荐使用 ts 的 as 断言
} as InputNumberProps,
},
];
return (
<Form
form={form}
onFinish={(value: Record<string, unknown>) => {
console.log('demo1 values: ', value);
}}
>
<Row gutter={18}>
{/* FormItemsBuilder 自带 Col 布局, 因此有时候传递的 colProps/itemProps 不ok时,或许需要加一个 Row 包裹 FormItemsBuilder */}
<FormItemsBuilder
colProps={{ span: 6 }}
formItemsConfig={formItemsConfig}
/>
<Col span={6}>
<Button type="primary" htmlType="submit">
提交
</Button>
</Col>
</Row>
</Form>
);
};
export default Demo1;
# clone 仓库
git clone git@github.com:oneQorg/art-antd-react.git
# 在 src 下新建 你要贡献的组件名字(yourComponentName)
# 在 src/index 文件下
export * from "./yourComponentName"
# 在 docs/components or docs/hooks 下写清楚怎样使用等说明
# 如果没有 yalc
npm i yalc -g
# 然后在本项目根目录 run
yalc publish
# 新建一个 测试仓库
npx create-react-app art-antd-test-project --template typescript
# 打开测试仓库
yalc add art-antd-react
# 复制的对应的 demo 到 art-antd-test-project 看能否跑起来
# 运行 ok, 正确渲染,那么 🎉🎉🎉
# 需要注意的是,如果出现了 `[eslint] Plugin "react" was conflicted between "package.json » eslint-config-react-app`错误,或许只需要在 demo 的 package.json 保存一下即可
# 构建 pages
pnpm run docs:build
# 部署到 pages
pnpm run docs:deploy
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。