react 封装表格组件_React Form组件杂谈

欢迎关注我的公众号睿Talk,获取我最新的文章:

一、前言

对于网页系统来说,表单提交是一种很常见的与用户交互的方式,比如提交订单的时候,需要输入收件人、手机号、地址等信息,又或者对系统进行设置的时候,需要填写一些个人偏好的信息。 表单提交是一种结构化的操作,可以通过封装一些通用的功能达到简化开发的目的。本文将讨论Form表单组件设计的思路,并结合有赞的ZentForm组件介绍具体的实现方式。本文所涉及的代码都是基于React v15的版本。

二、Form组件功能

一般来说,Form组件的功能包括以下几点:

表单布局

表单字段封装

表单验证&错误提示

表单提交

下面将对每个部分的实现方式做详细介绍。

表单布局

常用的表单布局一般有3种方式:

行内布局

水平布局

垂直布局

实现方式比较简单,嵌套css就行。比如form的结构是这样:

对应3种布局,只需要在form标签增加对应的class:

相应的,要定义3种布局的css:

.inline .label {

display: inline-block;

...

}

.inline .field {

display: inline-block;

...

}

.horizontal .label {

display: inline-block;

...

}

.horizontal .field {

display: inline-block;

...

}

.vertical .label {

display: block;

...

}

.vertical .field {

display: block;

...

}

三、表单字段封装

字段封装部分一般是对组件库的组件针对Form再做一层封装,如Input组件、Select组件、Checkbox组件等。当现有的字段不能满足需求时,可以自定义字段。

表单的字段一般包括两部分,一部分是标题,另一部分是内容。ZentForm通过getControlGroup这一高阶函数对结构和样式做了一些封装,它的入参是要显示的组件:

export default Control => {

render() {

return (

{required ? * : null}

{label}

{showError && (

{props.error}

)}

{notice &&

{notice}

}

{helpDesc &&

{helpDesc}

}

);

}

}

这里用到的label和error等信息,是通过Field组件传入的:

label="预约门店:"

name="dept"

component={CustomizedComp}

validatio

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值