【愚公系列】《微信小程序与云开发从入门到实践》026-WeUl表单类组件介绍
标题 | 详情 |
---|---|
作者简介 | 愚公搬代码 |
头衔 | 华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。 |
近期荣誉 | 2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。 |
博客内容 | .NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。 |
欢迎 | 👍点赞、✍评论、⭐收藏 |
🚀前言
在现代应用开发中,表单是用户与系统交互的重要桥梁。无论是注册、登录、反馈,还是信息收集,表单的设计和实现直接影响到用户的体验和操作的顺畅度。WeUI 作为一套专为微信生态设计的用户界面框架,提供了一系列精美且功能强大的表单类组件,使开发者能够快速构建出符合用户期待的交互界面。
本篇文章将重点介绍 WeUI 的表单类组件,包括输入框、选择器、滑动条、开关等。我们将详细解析每个组件的功能、使用方法以及在实际开发中的最佳实践,帮助你深入理解如何利用这些组件提升小程序的用户体验。同时,我们还会分享一些实用的技巧,帮助你应对常见的表单设计挑战,实现更加流畅和美观的用户交互。
无论你是刚刚入门的小程序开发者,还是希望优化现有关联的开发者,这篇文章都将为你提供丰富的知识和实用的工具。让我们一起深入探索 WeUI 表单类组件,为用户打造出更为便捷和友好的交互体验吧!
🚀一、WeUl表单类组件介绍
表单类组件是weU中提供的非常实用的一系列组件,通常在项目开发中,免不了会出现要用户输入的场景,而有用户输入就伴随着用户数据信息的校验与整合,表单组件帮开发者将议些功能进行了封装,使用非常方便。
🔎1.体验 WeUl开发的表单页面
🦋1.1 引入 WeUI 表单类组件
首先,我们来体验一下 WeUI 中提供的表单类组件。在页面配置文件中引入如下自定义组件:
{
"usingComponents": {
"mp-form-page": "weui-miniprogram/form-page/form-page",
"mp-form": "weui-miniprogram/form/form",
"mp-cells": "weui-miniprogram/cells/cells",
"mp-cell": "weui-miniprogram/cell/cell",
"mp-checkbox-group": "weui-miniprogram/checkbox-group/checkbox-group",
"mp-checkbox": "weui-miniprogram/checkbox/checkbox",
"mp-slideview": "weui-miniprogram/slideview/slideview",
"mp-uploader": "weui-miniprogram/uploader/uploader"
}
}
🦋1.2 示例代码
在对应的 WXML 文件中编写如下示例代码:
<mp-form-page title="完善信息" subtitle="请填写您的基本信息">
<mp-form>
<!-- 带说明的列表项 -->
<mp-cells title="带说明的列表项">
<mp-cell>
<view>内容</view>
<view slot="title">标题</view>
</mp-cell>
</mp-cells>
<!-- 单选列表项 -->
<mp-cells title="单选列表项">
<mp-checkbox-group multi="{{false}}">
<mp-checkbox value="0" label="男"></mp-checkbox>
<mp-checkbox value="1" label="女"></mp-checkbox>
</mp-checkbox-group>
</mp-cells>
<!-- 复选列表项 -->
<mp-cells title="复选列表项">
<mp-checkbox-group multi="{{true}}">
<mp-checkbox value="0" label="足球"></mp-checkbox>
<mp-checkbox value="1" label="篮球"></mp-checkbox>
</mp-checkbox-group>
</mp-cells>
<!-- 支持左滑的表单项 -->
<mp-slideview buttons="{{[{text:'删除', type: 'warn'}]}}">
<mp-cell value="内容内容内容内容内容内容内容内容内容"></mp-cell>
</mp-slideview>
<!-- 上传文件功能 -->
<view style="margin-left: 20px;">
<mp-uploader></mp-uploader>
</view>
</mp-form>
<!-- 底部提示 -->
<view slot="tips">
<view>
<checkbox /> 阅读并同意
<label style="color:blue;">《相关条款》</label>
</view>
</view>
<!-- 按钮 -->
<view slot="button">
<button class="weui-btn" type="primary" bindtap="submitForm">确定</button>
</view>
<!-- 附加内容区域 -->
<view slot="suffixtips">附加内容区域</view>
<!-- 页脚内容区域 -->
<view slot="footer">页脚内容区域</view>
</mp-form-page>
🦋1.3 组件介绍
上述代码中使用了以下组件:
mp-form-page
组件定义了表单页面的整体结构。mp-form
组件是表单项的容器组件。mp-cells
和mp-cell
组件用来定义表单中的一行数据。mp-checkbox-group
和mp-checkbox
用来定义单选或多选项。mp-slideview
定义支持左滑的表单项。mp-uploader
组件用来实现上传文件功能。
🦋1.4 运行效果
运行代码,效果如图所示:
总体看来,WeUI 中的这些表单组件基本足够满足用户提供信息的相关需求。下面我们会依次对这些组件做具体的介绍。
🔎2.关于FormPage 组件
FormPage
组件被称为表单页面组件,作为其他表单组件的容器,定义了整个页面的结构。该组件有两个属性可设置,如表所示。
FormPage
组件的属性
属性名 | 类型 | 意义 |
---|---|---|
title | 字符串 | 设置标题,如果设置了 title 插槽,则与此属性互斥 |
subtitle | 字符串 | 设置副标题 |
FormPage
组件规范了表单页中不同内容所在的区域,通过自定义组件的插槽技术实现。关于自定义组件的详细介绍,我们会在第 7 章进行讨论。现在只需要了解 FormPage
组件内部的子组件可以通过插槽的方式来定义即可。
FormPage
组件支持的插槽
插槽名 | 意义 |
---|---|
title | 标题区域 |
titetips | 标题区域的提示内容 |
sufixtips | 底部提交按钮前的提示区域 |
button | 底部的提交按钮区域 |
footer | 页脚的内容区域 |
🔎3.关于Form 组件
Form
组件用于结合 Cell
、Cells
、Checkbox
、Checkbox-group
等组件一起使用,提供有效性校验功能。该组件支持一些重要的属性配置,如表 6-7 所示。
Form
组件的属性
属性名 | 类型 | 意义 |
---|---|---|
ext-class | 字符串 | 设置组件的 class 类名 |
rules | 数组 | 设置表单的校验规则列表,其中的每个对象为规则对象 |
bindsuccess | 函数 | 绑定表单数据校验成功的回调事件 |
bindfail | 函数 | 绑定表单数据校验失败的回调事件 |
rules
属性可以设置为一个规则列表,列表中包含多个规则对象。规则对象的属性如表所示。
rules
规则对象的属性
属性名 | 类型 | 意义 |
---|---|---|
name | 字符串 | 要校验的字段名,与要校验组件的 prop 属性对应 |
message | 字符串 | 校验失败时的提示信息 |
validator | 函数 | 自定义校验函数 |
rules | 数组或对象 | 内置校验规则,可以是数组或对象,多条规则时用数组 |
内置校验规则可以是单个规则或多个规则,支持如下一些常见规则。所有支持的内置校验规则如表所示。
内置校验规则
规则名 | 值 | 意义 |
---|---|---|
required | 布尔值 | 是否必填 |
minlength | 数值 | 校验最小长度 |
maxlength | 数值 | 校验最大长度 |
rangelength | 数值数组 | 校验长度范围 |
bytelength | 数值 | 校验字节长度 |
range | 数值数组 | 校验数字的大小范围 |
min | 数值 | 校验数字最小值 |
max | 数值 | 校验数字最大值 |
mobile | 布尔值 | 校验手机号 |
布尔值 | 校验邮箱 | |
url | 布尔值 | 校验 URL |
equalTo | 字符串 | 校验与指定字段相等的值 |
🔎4.关于Cell与Cells 组件
🦋4.1 Cell
Cell
可以理解为表单中的一项,在一个表单页面中,每一个要填写的项目都可以是一个 Cell
。每个 Cell
组件表示表单中的一个单独项,例如输入框、选择框等。
Cells
组件则用来封装一组 Cell
组件,用于将多个 Cell
组织在一起,形成一个表单项的集合。
Cells
组件主要用于容纳多个 Cell
组件,它支持以下属性,如表所示:
Cells
组件的属性
属性名 | 类型 | 意义 |
---|---|---|
ext-class | 字符串 | 设置组件的 class 类名 |
title | 字符串 | 设置 Cells 组件的标题 |
footer | 字符串 | 设置 `底部文案 |
Cells
组件的默认插槽是其内容部分,即嵌套的多个 Cell
组件。
🦋4.2 Cell
组件的属性
Cell
组件包含许多配置项,以便定制表单项的样式和行为。下表列出了 Cell
组件支持的主要属性,如表所示。
Cell
组件的属性
属性名 | 类型 | 意义 |
---|---|---|
ext-class | 字符串 | 设置组件的 class 类名 |
icon | 字符串 | 设置左侧的图标,本地资源路径 |
title | 字符串 | 设置 Cell 组件的标题 |
footer | 字符串 | 设置 Cell 组件的底部文案 |
hover | 布尔值 | 设置是否有点击中效果 |
link | 布尔值 | 设置右侧是否显示跳转箭头 |
value | 字符串 | 设置内容文案 |
show-error | 布尔值 | 当校验出错时,是否将当前 Cell 标记为警告状态 |
prop | 字符串 | 在 Form 组件中,表单项的校验字段名 |
footer | 字符串 | 设置底部提示文案 |
inline | 布尔值 | 设置表单项是左右排列还是上下排列 |
Cell
组件支持多个插槽,用于定制不同部分的内容。表列出了 Cell
组件支持的插槽。
Cell
组件支持的插槽
插槽名 | 意义 |
---|---|
icon | 左侧图标区域 |
title | 标题区域 |
default | 默认插槽,显示 Cell 的主要内容 |
footer | 右侧区域,用于显示底部提示或内容 |
🔎5.关于Checkbox-group与Checkbox 组件
Checkbox
组件和 Checkbox-group
组件常用于表单页面中实现选项列表,支持单选和多选功能。选项列表通过这两个组件实现,通常需要配合使用。
🦋5.1 Checkbox-group
组件
Checkbox-group
组件是一个容器组件,用于管理多个 Checkbox
组件。它支持配置一些属性,如表所示:
Checkbox-group
组件的属性
属性名 | 类型 | 意义 |
---|---|---|
ext-class | 字符串 | 设置组件的 class 类名 |
multi | 布尔值 | 设置单选还是多选。true 为多选,false 为单选 |
prop | 字符串 | 用来表单校验的字段名 |
bindchange | 函数 | 绑定选择的选项发生变化时的回调事件 |
Checkbox-group
组件内部包含多个 Checkbox
组件,管理这些复选框的状态变化。
🦋5.2 Checkbox
组件
Checkbox
组件用于表单项中的单个复选框。它可以配置不同的属性来实现具体的交互效果,如表所示。
Checkbox
组件的属性
属性名 | 类型 | 意义 |
---|---|---|
ext-class | 字符串 | 设置组件的 class 类名 |
multi | 布尔值 | 设置是否为多选,true 表示多选,false 表示单选 |
checked | 布尔值 | 设置是否选中,true 表示选中,false 表示未选中 |
value | 字符串 | 选项的值 |
label | 字符串 | 显示的文案 |
bindchange | 函数 | 绑定选中状态发生变化时的回调事件 |
🔎6.关于 Slideview 组件
Slideview
组件是一种支持左滑操作的表单项,通常用于表单中需要展示额外功能按钮的场景。通过左滑手势,右侧会出现预设的功能按钮,用户可以通过点击这些按钮进行相应操作。
Slideview
组件支持的属性如下表所示:
属性名 | 类型 | 意义 |
---|---|---|
ext-class | 字符串 | 设置组件的 class 类名 |
disable | 布尔值 | 设置是否禁用当前组件 |
buttons | 数组 | 左滑后的功能按钮 |
icon | 布尔值 | 设置按钮是否是图标 |
show | 布尔值 | 设置当前组件右侧功能按钮的显示隐藏 |
duration | 数值 | 设置当前组件功能按钮显示隐藏动画的时长,单位为毫秒 |
throttle | 数值 | 设置手指移动距离超过一定阈值后拉出按钮 |
bindbuttonTap | 函数 | 绑定点击功能按钮后的回调事件 |
bindhide | 函数 | 绑定隐藏功能按钮后的回调事件 |
bindshow | 函数 | 绑定显示功能按钮后的回调事件 |
Slideview
组件可以配置一组功能按钮,定义功能按钮对象的属性如下表所示:
属性名 | 类型 | 意义 |
---|---|---|
ext-class | 字符串 | 设置组件的 class 类名 |
type | 字符串 | 设置按钮的类型,可选值为: - default: 默认风格 - warn: 警告风格 |
text | 字符串 | 按钮的标题 |
src | 字符串 | 如果按钮为图标类型的,此属性设置图标的资源路径 |
data | 任意类型 | 点击按钮时回传给触发事件参数的数据 |
🔎7.关于 Uploader 组件
Uploader
组件是 WeUI 中封装的图片上传组件,适用于表单页面中用户需要上传图片、音频等文件的场景。通过该组件,可以方便地实现文件上传功能。
Uploader
组件支持多种属性配置,用于控制组件的外观、行为和文件上传过程。以下是 Uploader
组件支持的属性,如表示:
属性名 | 类型 | 意义 |
---|---|---|
ext-class | 字符串 | 设置组件的 class 类名 |
title | 字符串 | 设置组件的标题 |
tips | 字符串 | 设置组件的提示文案 |
delete | 布尔值 | 设置是否显示删除按钮 |
size-type | 数组 | 选择文件尺寸参数(如 [‘original’, ‘compressed’]) |
source-type | 数组 | 选择文件来源参数(如 [‘album’, ‘camera’]) |
max-size | 数值 | 设置支持的文件最大尺寸限制(单位:字节) |
max-count | 数值 | 设置支持的最大文件个数 |
files | 数组 | 当前文件列表 |
select | 函数 | 设置选择文件时的过滤函数 |
upload | 函数 | 设置文件上传的函数 |
回调事件
属性名 | 类型 | 意义 |
---|---|---|
bindselect | 函数 | 绑定选择文件后触发的回调事件 |
bindcancel | 函数 | 绑定取消选择后触发的回调事件 |
bindsuccess | 函数 | 绑定上传成功后触发的回调事件 |
bindfail | 函数 | 绑定上传失败后触发的回调事件 |
binddelete | 函数 | 绑定删除文件后触发的回调事件 |
以下是 files
属性中每个文件对象包含的信息,如表所示:
属性名 | 类型 | 意义 |
---|---|---|
url | 字符串 | 文件的链接 |
loading | 布尔值 | 文件是否正在上传中 |
error | 布尔值 | 上传失败时,存放异常信息 |
- 点赞
- 收藏
- 关注作者
评论(0)