• Vant React

PasswordInput 密码输入框

介绍

带网格的输入框组件,可以用于输入密码、短信验证码等场景,通常与数字键盘组件配合使用。

引入

import { PasswordInput } from "@taroify/core";

代码演示

基础用法

搭配数字键盘组件来实现密码输入功能。

function BasicPasswordInput() {
  const [open, setOpen] = useState(false)
  const [value, setValue] = useState("123")

  return (
    <>
      <PasswordInput focus value={value} onFocus={() => setOpen(true)} />
      <NumberKeyboard
        open={open}
        onKeyPress={(key) => setValue(value + key)}
        onBackspace={() => setValue(value.substring(0, value.length - 1))}
        onHide={() => setOpen(false)}
      />
    </>
  )
}

自定义长度

通过 length 属性来设置密码长度。

<PasswordInput length={6} value="123" />

格子间距

通过 gutter 属性来设置格子之间的间距。

<PasswordInput gutter={10} value="123" />

明文展示

mask 设置为 false 可以明文展示输入的内容,适用于短信验证码等场景。

<PasswordInput mask={false} value="123" />

提示信息

通过 feedback 属性设置提示信息,例如当输入六位时提示密码错误。

<PasswordInput feedback="密码为 6 位数字" value="123" />
<PasswordInput feedback={{ color: "danger", children: "密码为 6 位数字" }} value="123" />
<PasswordInput feedback={<PasswordInput.Feedback color="danger" children="密码为 6 位数字" />} value="123" />

API

PasswordInput Props

参数说明类型默认值
value密码值string''
length密码最大长度number | string6
gutter输入框格子之间的间距,如 20px 2em,默认单位为pxnumber | string0
mask是否隐藏密码内容booleantrue
focus是否聚焦,聚焦时会显示光标booleanfalse
feedback输入框下方文字提示ReactText | PasswordInputFeedbackProps | ReactElement-

PasswordInput Events

事件名说明回调参数
onFocus输入框聚焦时触发-

PasswordInput.Feedback Props

参数说明类型默认值
color颜色,可选值为 primary info success warning dangerstring-

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。

名称默认值描述
password-input-height50px * $hd-
password-input-margin0 var(—padding-md)-
password-input-border-radius6px * $hd-
password-input-item-font-size20px * $hd-
password-input-item-background-colorvar(—white)-
password-input-mask-size10px * $hd-
password-input-mask-widthvar(—password-input-mask-size)-
password-input-mask-heightvar(—password-input-mask-size)-
password-input-mask-colorvar(—black)-
password-input-cursor-colorvar(—text-color)-
password-input-cursor-width1px * $hd-
password-input-cursor-height40%-
password-input-cursor-animation-duration1s-
password-input-feedback-margin-topvar(—padding-md)-
password-input-feedback-font-sizevar(—font-size-md)-
password-input-feedback-colorvar(—gray-6)-
password-input-feedback-primary-colorvar(—primary-color)-
password-input-feedback-info-colorvar(—info-color)-
password-input-feedback-success-colorvar(—success-color)-
password-input-feedback-warning-colorvar(—warning-color)-
password-input-feedback-danger-colorvar(—danger-color)-