📅  最后修改于: 2023-12-03 14:47:31.667000             🧑  作者: Mango
Spectre Forms 是一个基于 React 的输入组件库,提供了丰富的输入组件,如文本框、多选框、下拉框等,同时支持自定义样式和表单验证。
使用 npm 安装:
npm install spectre-forms
在 React 组件中引入所需的组件即可使用:
import { Input, Checkbox, Select } from 'spectre-forms';
function MyForm() {
return (
<form>
<Input placeholder="请输入用户名" />
<Checkbox label="同意协议" />
<Select label="选择城市" options={['北京', '上海', '广州']} />
</form>
);
}
文本框组件,提供了基本的文本输入功能。
<Input type="text" placeholder="请输入内容" />
支持的 props:
type
: 文本框类型,默认为 text
placeholder
: 占位符多选框组件,提供了单选和多选功能。
<Checkbox label="选项一" />
支持的 props:
label
: 选项标签value
: 选中值,可用于受控组件下拉框组件,提供了单选和多选功能。
<Select label="请选择" options={['选项一', '选项二', '选项三']} />
支持的 props:
label
: 下拉框标签options
: 选项列表value
: 选中值,可用于受控组件Spectre Forms 支持通过样式覆盖来自定义组件样式。
例如,你可以为 Input 组件添加自定义样式:
import { Input } from 'spectre-forms';
import './MyInput.css'; // 引入自定义样式
function MyInput(props) {
return <Input className="my-input" {...props} />;
}
同时,在 MyInput.css
中编写相应的样式:
.my-input {
border-radius: 5px;
border: 2px solid #ddd;
padding: 10px;
}
Spectre Forms 支持通过 onChange
事件和 validators
属性实现表单验证。
例如,你可以为 Input 组件添加验证器:
import { Input } from 'spectre-forms';
function MyForm() {
const [value, setValue] = useState('');
const handleInputChange = (e) => {
setValue(e.currentTarget.value);
};
const validators = [
{
validate: (value) => value.length > 0,
message: '用户名不能为空',
},
{
validate: (value) => value.length <= 10,
message: '用户名不能超过10个字符',
},
];
return (
<form>
<Input
placeholder="请输入用户名"
value={value}
onChange={handleInputChange}
validators={validators}
/>
</form>
);
}
在示例中,我们使用了 useState
声明了一个状态 value
,使用 handleInputChange
监听 Input 组件的 onChange
事件,并更新状态 value
。我们还为 Input 组件设置了 validators
属性,并传入了一个验证器数组,其中 validate
函数用于验证输入是否符合要求, message
用于设置错误信息。
以上是 Spectre Forms 输入组件库的介绍,它提供了丰富的输入组件、自定义样式和表单验证功能,希望对你有所帮助!