NPM 包 Nestia-antd 使用教程

阅读时长 10 分钟读完

在前端开发中,我们常常使用一些第三方的 UI 库来提高我们的工作效率和开发体验,其中 Ant Design 是一款非常流行的 UI 库,其优秀的设计风格和良好的组件支持受到了广大开发者的青睐。而 Nestia-antd 是一个基于 Ant Design 的扩展组件库,提供了更多场景中实用的组件和样式,解决了一些 Ant Design 本身不足的问题。本文将介绍 Nestia-antd 的使用方法和一些实用的功能,帮助您更好地使用和应用这个库。

安装和基础使用

首先,我们需要使用 NPM 进行安装,输入如下命令即可完成安装:

安装完成后,在我们的代码中导入需要的组件即可使用,示例代码如下:

-- -------------------- ---- -------
------ - ------- ----- - ---- --------------
------ -----------------------------------

-- ---

-------- -
  ------ -
    -----
      ------- --------------------------
      ------ -------------------- --
    ------
  --
-

这里我们只引入了 Button 和 Input 两个组件,更多的组件可以在 Nestia-antd 的官方文档中查看。

同时我们还需要引入 Nestia-antd 的样式表,这里我们全部引入了,您也可以只引入需要的部分样式。

Form 组件

Nestia-antd 中提供了丰富的表单组件和验证规则,其中 Form 组件是最为核心和常用的。

基本用法

Form 组件可以帮助我们实现表单的自动收集和验证,使用起来非常简便,示例代码如下:

-- -------------------- ---- -------
------ - ----- ------ ------ - ---- --------------

----- ----- ------- --------------- -
  -------- - -------- -- -
    --------------------- ------ -- ----- -- --------
  --

  -------- -
    ------ -
      ----- -------------------------
        ---------- ----------- --------------- --------- --------- ---- ----
          ------ -------------------- --
        ------------
        ---------- ---------- --------------- --------- --------- ---- ----
          --------------- ------------------- --
        ------------
        -----------
          ------- -------------- -----------------------------
        ------------
      -------
    --
  -
-

在表单中,我们使用了 Form、Form.Item 和各种表单组件(这里只使用了 Input 和 Input.Password)来构建表单元素。其中,Form 组件通过 onFinish 属性来指定表单提交时的回调函数。在表单元素中,我们通过 name 属性和 rules 属性指定了表单字段的名称和验证规则。

表单验证

表单验证是表单中非常重要的一部分,Nestia-antd 提供了丰富的验证规则和自定义验证方式,帮助我们实现各种表单验证需求。

内置验证规则

Nestia-antd 提供了很多内置的验证规则,这些规则可以通过 Form.Item 的 rules 属性传递到表单元素中,示例代码如下:

这里我们使用了 required 和 pattern 两个内置验证规则,required 要求该表单字段必须输入,pattern 要求该表单字段必须匹配指定的正则表达式。如果验证失败,则会在表单元素的下方显示相应的提示信息。

同时,Nestia-antd 还提供了很多其他的内置验证规则,例如 email、url、number 等等,具体可以在官方文档中查看。

自定义验证规则

除了内置的验证规则,Nestia-antd 还可以支持自定义的验证规则。我们可以在 rules 属性中传递一个对象来指定自定义验证规则,示例代码如下:

这里我们使用了 validator 属性来定义自定义的验证规则,validator 接收两个参数,第一个参数是验证规则的回调值,因为我们这里不需要使用,所以使用了 _ 来代替;第二个参数是表单字段的值。我们在回调函数中判断传入的表单值是否符合我们的验证规则,如果符合则返回 Promise.resolve(),否则返回 Promise.reject() 并传入相应的错误信息。

计算联动验证规则

有时候,我们需要对多个表单字段进行计算或联动验证,Nestia-antd 提供了相应的方案来解决这个问题。

例如,我们需要实现一个时间区间选择的表单,开始时间必须小于结束时间。我们可以通过 depends 属性来实现,代码如下:

-- -------------------- ---- -------
----- -------------------- - -- ------------- -- -- -
  ------ -
    ------------ ------ -
      -- ------- -- -------------------------- -
        ------ ------------------
      -
      -- ----------------------------------------- -
        ------ ------------------ -----------------------
      -
      ------ ------------------
    --
    ------------- ------------
  --
--

-- ---

---------- ------------ ---------------- --------- --------- ---- -- -----------------------
  ----------- -------- --------------------- --
------------
---------- ------------ -------------- --------- --------- ---- -- -----------------------
  ----------- -------- --------------------- --
------------

在代码中,我们定义了一个名为 validateStartEndTime 的验证规则,它接收一个参数,通过 getFieldValue 方法来获取表单中其他字段的值。在验证规则回调函数中,我们判断当前字段的值是否大于结束时间,如果是,则返回 Promise.reject() 并传入相应的错误信息,否则返回 Promise.resolve()。同时,在联动的表单元素中,我们通过 rules 属性把自定义的规则放在内置规则的后面,并使用 depends 属性来指定它依赖的表单字段。这样,当另一个表单字段的值发生变化时,该表单元素也会重新进行验证。

更多的表单验证用法和技巧,可以在 Nestia-antd 的官方文档中查看。

Input 组件扩展

Ant Design 中的 Input 组件已经提供了很多实用的特性,例如前缀和后缀、搜索、计数器、密码输入等等。但是,有些使用场景我们可能还需要更多实用的功能,这时候 Nestia-antd 提供的 Input 组件扩展就非常实用了。

Input.Search

Input.Search 组件实现了一个搜索框,它包含了一个 Input 和一个 Search 按钮。当用户在 Input 中输入内容时,可以通过点击 Search 按钮或按 Enter 键进行搜索。另外,我们还可以通过 onSearch 属性来指定搜索时的回调函数。示例代码如下:

-- -------------------- ---- -------
------ - ----- - ---- --------------

----- ------ ------- --------------- -
  -------- - ------- -- -
    -------------------- -------
  --

  -------- -
    ------ -
      ------------- -------------------- ------------------------ --
    --
  -
-

Input.Copyable

Input.Copyable 组件扩展了 Input 的复制功能,它可以让用户直接复制表单中的内容到剪贴板上。同时,我们还可以通过 onCopy、onCut 和 onPaste 属性来实现相应的剪贴板操作回调函数。示例代码如下:

-- -------------------- ---- -------
------ - ----- - ---- --------------

----- -------- ------- --------------- -
  ------ - --------- -- -
    --------------------- ---------
  --

  -------- -
    ------ -
      --------------- ----------------------- -------------------- --
    --
  -
-

Input.Number

Input.Number 扩展了 Input 的数字输入功能,它支持限制输入范围、步长、格式化和解析等。示例代码如下:

-- -------------------- ---- -------
------ - ----- - ---- --------------

----- ----------- ------- --------------- -
  -------- - ------- -- -
    ------------------- -------
  --

  -------- -
    ------ -
      ------------- ------- -------- ---------- ------------------ -- -- ---------- --------------- -- ---------------------------- ---- ------------------------ --
    --
  -
-

在代码中,我们使用了 min、max 和 step 属性来限制输入范围和步长,使用 formatter 和 parser 方法来实现格式化和解析,onChange 方法来监听输入值的变化。

Input.Label

Input.Label 扩展了 Input 的标签功能,它可以在 Input 前后添加自定义文本或图标。示例代码如下:

-- -------------------- ---- -------
------ - ------ ------ - ---- --------------

----- ---------- ------- --------------- -
  -------- -
    ------ -
      ------------ ------------------------- ------------------------- --
    --
  -
-

在代码中,我们使用 pre 和 suf 属性来添加前置文本和后置文本。

总结

本文简要介绍了 NPM 包 Nestia-antd 的使用方法和一些实用的功能,在日常前端开发中使用 Nestia-antd 可以帮助我们提高工作效率和开发体验,加速项目的开发进度。当然,Nestia-antd 也有其不足之处,您也可以根据具体需求选择其他的 UI 库和组件。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600554b081e8991b448d1e61

纠错
反馈