【愚公系列】《微信小程序与云开发从入门到实践》017-提供用户交互功能的组件

标题 详情
作者简介 愚公搬代码
头衔 华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
近期荣誉 2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
博客内容 .NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
欢迎 👍点赞、✍评论、⭐收藏


🚀前言

在微信小程序的开发过程中,用户交互功能的实现是提升用户体验的关键。而微信小程序提供了一系列强大的组件,专门用于增强用户与应用之间的互动。这些组件不仅丰富了小程序的功能,也为开发者提供了灵活的工具,以满足不同场景下的交互需求。

本篇文章将深入探讨微信小程序中主要的用户交互组件,包括按钮、表单、滑动条、对话框等。我们将详细分析每个组件的特性、使用方法以及最佳实践,帮助你更好地理解如何通过这些组件来提升用户体验。

无论你是小程序开发的新手,还是希望优化现有应用的资深开发者,这篇文章都将为你提供实用的见解和技巧。让我们一起探索微信小程序提供的用户交互功能组件,创造出更加引人入胜的小程序体验吧!

🚀一、提供用户交互功能的组件

🔎1.button(按钮)组件及应用

按钮是页面开发中最常用的交互组件之一。小程序框架提供的 button 组件可配置的属性众多,可以通过实际代码演示来体验这些属性的效果。

🦋1.1 示例:在 buttonDemo 页面中使用按钮组件

  1. buttonDemo.wxml 文件中编写如下代码:
<!-- pages/buttonDemo/buttonDemo.wxml -->
<view>
  <button type="primary">Normal</button>
  <button type="primary" loading="true">Loading</button>
  <button type="primary" disabled="true">Disabled</button>
  <button type="default">default</button>
  <button type="warn">Warn</button>
  <button type="primary" plain="true">Plain</button>
  <button type="primary" disabled="true" plain="true">Plain Disabled</button>
  <button class="mini-btn" type="primary" size="mini">Mini Primary</button>
</view>
  1. buttonDemo.wxss 文件中为 button 组件添加边距样式:
/* pages/buttonDemo/buttonDemo.wxss */
button {
   
  margin: 20px;
}

运行代码后,效果如图所示。可以看到,默认的按钮组件样式简洁美观,很多时候,我们的小程序风格应尽量与微信应用程序整体风格保持协调,使用框架默认的样式是一个不错的选择。
在这里插入图片描述

🦋1.2 button 组件可配置的属性

button 组件支持以下可配置的属性:

属性名 类型 意义
size 字符串 设置按钮的尺寸类型,可选值为:
- default: 默认大小
- mini: 小尺寸
type 字符串 设置按钮样式类型,可选值为:
- primary: 主题色调按钮(绿色)
- default: 默认色调按钮(白色)
- warn: 警告色调按钮(红色)
plain 布尔值 设置是否为空的描边按钮
disabled 布尔值 设置是否禁用按钮
loading 布尔值 设置是否带 loading 状态
form-type 字符串 用于表单组件内,点击会触发表单的 submit 事件
open-type 字符串 关联的微信开放能力,可选值为:
- contact: 打开客服会话
- share: 触发用户转发
- getPhoneNumber: 获取用户手机号
- getUserInfo: 获取用户信息
- launchApp: 打开 App
- openSetting: 打开授权设置页
- feedback: 打开意见反馈页面
- chooseAvatar: 获取用户头像
hover-stop-propagation 布尔值 设置是否阻止本节点的祖先节点出现点击状态
hover-class 字符串 设置按钮按下时亮起的样式类
hover-start-time 数值 设置按钮按住后出现点击态的延迟时间,默认值为 20ms
hover-stay-time 数值 设置点击态消失后的延迟时间,默认值为 70ms
lang 字符串 指定返回用户信息的语言,可选值为:
- en: 英文
- zh_CN: 简体中文
- zh_TW: 繁体中文
session-from 字符串 设置会话来源
send-message-title 字符串 设置发送消息卡片标题,当 open-typecontact 时有效
send-message-path 字符串 设置发送消息卡片点击后跳转小程序路径,当 open-typecontact 时有效
send-message-img 字符串 设置发送消息卡片图片,当 open-typecontact 时有效
app-parameter 字符串 设置打开 APP 时传递的参数,当 open-typelaunchApp 时有效
show-message-card 布尔值 设置是否显示会话消息卡片,当 open-typegetUserInfo 时有效
bindgetuserinfo 函数 获取用户信息的回调,当 open-typegetUserInfo 时有效
bindcontact 函数 客服消息回调,当 open-typecontact 时有效
bindgetphonenumber 函数 获取用户手机号的回调,当 open-typegetPhoneNumber 时有效
binderror 函数 使用开放能力时失败的回调调,适用于所有 open-type
bindopensetting 函数 打开授权设置页的回调,当 open-typeopenSetting 时有效
bindlaunchapp 函数 打开 APP 完成后的回调,当 open-typelaunchApp 时有效
bindchooseavatar 函数 获取用户头像的回调,当 open-typechooseAvatar 时有效

示例:按钮集成微信分享能力

例如,要接入微信的分享能力,只需设置 open-type="share"

<button class="mini-btn" type="primary" size="mini" open-type="share">Mini Primary</button>

在这里插入图片描述

🔎2.switch(开关)组件及应用

switch 组件是一类特殊的按钮,它有开启和关闭两种状态。在很多应用的设置页面,都有类似的开关,比如控制是否有消息提示音,是否接收推送消息等。在 pages 文件夹下新建一组名为 switchDemo 的页面文件,在 switchDemo.wxml 文件中编写如下代码:

<!-- pages/switchDemo/switchDemo.wxml -->
<view>
  <switch checked="{
    {switchData}}" bindchange="switchChange"/> 开关按钮
</view>
<view style="margin: 20px;"></view>
<view>
  <switch type="checkbox" checked="{
    {checkData}}" bindchange="checkChange"/> 选择框按钮
</view>

上述代码中,使用了两个 switch 组件,其中一个设置为开关类型,另一个设置为选择按钮类型。在 switchDemo.js 文件中编写与之匹配的代码:

// pages/switchDemo/switchDemo.js
Page({
   
  data: {
   
    switchData: false,
    checkData: false
  },
  switchChange: function(data) {
   
    console.log(data.detail);
  },
  checkChange: function(data) {
   
    console.log(data.detail);
  }
});

当用户切换了开关按钮的状态时,会触发绑定的回调函数,传递进来的参数中的 detail 属性表示当前开关的状态。

运行上述代码,效果如图所示。

在这里插入图片描述

switch 组件的属性

属性名 类型 意义
checked 布尔值 当前开关是否开启或选中
disabled 布尔值 设置按钮是否禁用
type 字符串 设置按钮的类型,可选值为:
- switch: 开关类型
- checkbox: 选择框类型
color 字符串 设置按钮的颜色
bindchange 函数 设置开关状态改变时的回调函数

🔎3.checkbox 组件与 checkbox-group 组件及应用

switch 组件的 type 属性设置为 checkbox 时,其会渲染出一个选择框样式的按钮。其实在小程序开发框架中,专门提供了 checkboxcheckbox-group 组件来处理需要使用选择框的场景。checkbox 组件和 checkbox-group 组件内部可以定义一组 checkbox 组件,我们只需要在 checkbox-group 组件上绑定用户选择状态改变的事件即可。

pages 文件夹下新建一组名为 checkboxDemo 的页面文件,在 checkboxDemo.wxml 文件中编写如下代码:

<!-- pages/checkboxDemo/checkboxDemo.wxml -->
<checkbox-group bindchange="change">
  <checkbox value="足球">足球</checkbox>
  <checkbox value="篮球">篮球</checkbox>
  <checkbox value="乒乓球">乒乓球</checkbox>
</checkbox-group>

checkboxDemo.js 文件中实现绑定的回调事件函数:

// pages/checkboxDemo/checkboxDemo.js
Page({
   
  change: function(data) {
   
    console.log(data.detail.value);
  }
});

运行代码,页面上会显示一组选择框,当这一组选择框中的任意一个选中状态发生了变化时,都会调用回调函数,在其传递的参数中会装一个数组对象,数组中存放的是所有选中状态的 checkboxvalue 值。

上面的代码运行效果如图所示。
在这里插入图片描述

checkbox-group 组件的作用是包含一组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愚公搬代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值