微信小程序 --- 通用模块封装(showToast,showModal ,本地存储)

本文介绍了如何在微信小程序中对常用API如消息提示和模态对话框进行模块封装,以及如何封装本地存储(包括同步和异步操作),以提高代码复用性和可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

01. 为什么进行模块封装

02. 消息提示模块封装

03. 模态对话框封装

04. 封装本地存储 API

05. 拓展:封装异步存储API+优化代码


01. 为什么进行模块封装

在进行项目开发的时候,我们经常的会频繁的使用到一些 API,

例如:wx.showToast() 、wx.showModal()等消息提示 API ,这些 API 的使用方法如下:

wx.showToast({
  title: '消息提示框', // 提示的内容
  icon: 'success',   // 提示图标
  duration: 2000,	 // 提示的延迟时间
  mask: true		 // 是否显示透明蒙层,防止触摸穿透
})

wx.showModal({
  title: '提示', // 提示的标题
  content: '您确定执行该操作吗?', // 提示的内容
  confirmColor: '#f3514f', // 确定按钮的样式
  // 接口调用结束的回调函数(调用成功、失败都会执行)
  complete({ confirm, cancel }) {
    if (confirm) {
      console.log('用户点击了确定')
      return
    }

    if (cancel) {
      console.log('用户点击了取消')
    }
  }
})

如果每次使用的时候,都直接调用这些 API,会导致代码很冗余,为了减少了代码冗余,我们需要将这些 API 封装成公共方法,封装后的使用方式如下:

// wx.showToast() 封装后的调用方式
toast()
toast({ title: '数据加载失败....', mask: true })

// wx.showModal() 封装后的调用方式
const res = await modal({
  title: '提示',
  content: '鉴权失败,请重新登录 ?'
})

// 用户点击了确定
if (res) { ... } else { ... }

可以看到封装后方法,极大简化 API 的调用,

同时,我们在后续还会进行网络通用模块的封装,如果直接进行封装难度比较大,

进行通过模块的封装,也是为后续 [网络请求封装] 做铺垫。

02. 消息提示模块封装

基本使用:

wx.showToast() 消息提示框是在项目中频繁使用的一个小程序 API,常用来给用户进行消息提示反馈。使用方式如下:

wx.showToast({
  title: '消息提示框', // 提示的内容
  icon: 'success',   // 提示的图标,success(成功)、error(失败)、loading(加载)、none(不显示图标)
  duration: 2000,	 // 提示的延迟时间
  mask: true		 // 是否显示透明蒙层,防止触摸穿透
})

封装思路:

  1. 创建一个 toast 方法对 wx.showToast() 方法进行封装

  2. 调用该方法时,传递对象作为参数

    • 如果没有传递任何参数,设置一个空对象 {} 作为默认参数

    • 从对象中包含 titleicondurationmask 参数,并给参数设置默认值

  3. 在需要显示弹出框的时候调用 toast 方法,并传入相关的参数,有两种参数方式:

    • 不传递参数,使用默认参值
    • 传入部分
### 微信小程序常用API和函数 微信小程序提供了一系列丰富的 API 和函数,用于支持开发者构建高效、灵活的应用程序。以下是常见的 API 和函数分类及其具体用途: #### 一、基础交互类 1. **页面跳转** - `wx.navigateTo(Object object)`:用于保留当前页面并跳转至指定页面[^1]。 - `wx.redirectTo(Object object)`:关闭当前页面并跳转至指定页面。 - `wx.switchTab(Object object)`:跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。 2. **返回上一页** - `wx.navigateBack(Object object)`:关闭当前页面并返回上一页面或多级页面。 3. **跨小程序导航** - 使用封装好的函数 `navigateToMiniProgram` 可以方便地实现跳转至另一个小程序的功能[^3]: ```javascript function navigateToMiniProgram(appId, path, extraData, envVersion){ wx.navigateToMiniProgram({ appId: appId, path: path, extraData: extraData, envVersion: envVersion }); } ``` #### 二、数据请求与处理类 1. **网络请求** - `wx.request(Object object)`:发起 HTTP 网络请求。 2. **文件操作** - `wx.uploadFile(Object object)`:上传文件接口。 - `wx.downloadFile(Object object)`:下载文件接口。 #### 三、界面控制类 1. **下拉刷新** - 实现页面的下拉刷新功能可以通过调用以下两个核心 API 完成[^2]: - `wx.startPullDownRefresh(Object object)` - `wx.stopPullDownRefresh()` 2. **显示加载提示框** - `wx.showLoading(Object object)`:显示 loading 提示框。 - `wx.hideLoading()`:隐藏 loading 提示框。 3. **模态对话框** - `wx.showToast(Object object)`:轻量级弹窗提示。 - `wx.showModal(Object object)`:显示模态对话框。 #### 四、设备信息类 1. **获取系统信息** - `wx.getSystemInfoSync()`:同步获取系统信息。 - `wx.getSystemInfo(Object object)`:异步获取系统信息。 2. **位置服务** - `wx.getLocation(Object object)`:获取当前位置经纬度。 - `wx.chooseLocation(Object object)`:打开地图选择位置。 #### 五、云开发相关 1. 初始化云环境 - `wx.cloud.init(Object object)`:初始化云开发环境[^4]。 2. 调用云函数 - `wx.cloud.callFunction(Object object)`:调用云端定义的函数逻辑。 --- ### 示例代码 以下是一个简单的下拉刷新功能实现案例: ```javascript Page({ onPullDownRefresh() { console.log('触发下拉刷新'); setTimeout(() => { wx.stopPullDownRefresh(); console.log('停止下拉刷新'); }, 2000); }, }); ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

前端 贾公子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值