近期开发微信小程序遇到的问题

113 阅读2分钟

我正在参与掘金创作者训练营第5期,点击了解活动详情

前言

最近在开发一款预约小程序,前端是微信小程序,后端用的C#。好久不写小程序了,遇到好多问题,这次想起来总结一下。

微信小程序设置全局请求URL封装wx.request请求

大家在开发程序的时候,一开始可能体会过改请求路径的痛苦。当时我一个练手的小程序,因为图床绑定的域名不用了图片崩了废了我好大的劲。

后来了解到域名可能会频繁改变,一个一个改请求路径就很不现实了,所以封装请求就很有必要。

wxRequest(method, url, data, callback, errFun) {
    wx.request({
      url: url,
      method: method,
      data: data,
      header: {
        'content-type': 'application/json;charset=UTF-8',
        'Accept': 'application/json',
      },
      dataType: 'json',
      success: function (res) {
        callback(res);
      },
      fail: function (err) {
        errFun(err);
      }
    })
 }

封装的不是很完善,以后有需求再继续改进。

本地缓存

有的数据需要使用本地缓存,微信小程序很贴心的给上了接口:

wx.setStorage({ 
    key: key, 
    data: value 
})

bindtap传参

微信小程序bindtap是不能在()里传参,但是提供了另一种传参的方式——使用自定义参数data-,可以通过dataset拿到对应的值

例如下面的

<viewbindtap="passName" data-name="{{name}}"></view>

可以通过e.currentTarget.dataset.name拿到data-name里的值。

微信小程序刷新当前页面

当添加数据、删除数据等情况的时候,我们需要在操作结束刷新页面,一遍让用户看到最新的结果。有很多方式完成这个需求:

this.onload()

在函数中调用this.onload()可以刷新页面。但是注意要求是本次操作对页面onLoad函数所携带的各种参数没有影响

this.onReady() 或者 this.onShow()

同样可以在函数中直接调用this.onReady() 或者 this.onShow()即可完成刷新操作,前提是本页面的数据操作需要在页面的onReady()或onShow()函数中完成。