平常的一次性开发好弄,但是当维护起来代码的时候,每次反复的修改就会觉得效率低了。因为做的不仅仅只有微信小程序,还有支付宝小程序,百度,头条小程序。都知道每一个小程序的语法都不太一样,每次修改一次都要全部修改,实在是心累。为了提升自己的开发效率,自己简单的封装代码是必不可少的!
一般都是在自己项目的根目录下,自带一个util文件夹,在这个文件夹下有一个util.js文件,这个文件里面一般都是放一些公用的方法。(例如封装截取url函数,计算计算指定日期与当前日期相差的天数,获取当前日期与时间,消息提示等等)
还可以在util文件夹下新建文件api.js,里面放上自己当前小程序的globalData数据信息和api。从而在服务器域名更改或者appId更改的时候,还有借口名称改变的时候,只需要在这个文件夹中修改,减少翻找其他的文件。
下面是我的一些自己封装代码的实例。大家也可以按照自己的想法来封装,怎么少写一句代码就怎么来,哈哈。
计算指定日期与当前日期相差的天数
/**
* 计算指定日期与当前日期相差的天数
*/
function calculateDateDifference(date) {
var now = Date.parse(new Date());
var end = Date.parse(date);
//两个时间戳相差的毫秒数
var time = end - now;
return Math.floor(time / (24 * 3600 * 1000));
}
消息提示封装
/**
* 弹出提示框信息,无回调动作
*/
// 弹框显示 只有一个确认按钮.微信上没有alert API,是只有一个showModal,可以自己封装一下,之所以这样封装是为了和支付宝小程序保持一致,修改的时候,可以一套代码,两个都适用。
function alert(content, title) {
wx.showModal({
content: content,
title: title || '提示',
showCancel: false,
confirmText: '确认',
})
}
//使用方法:
// 在js文件上面导入api.js文件:
import api from '../../utils/api.js'
api.alert("恭喜签约成功!")
function showToast(content, type, duration, mask) {
wx.showToast({
title: content, // 注意这里的不一样
icon: type || 'none', // 注意
duration: duration || 2000,
mask: mask || false
})
}
function showLoading(title) {
wx.showLoading({
title: title || '正在加载中。。。'
})
}
// 封装 请求
function request(obj) {
wx.showLoading({
title: obj.tips || '加载中',
mask: true
})
if (obj.method == 'post' || obj.method == "POST") {
header['content-type'] = 'application/x-www-form-urlencoded'
} else {
header["content-type"] = 'application/json'
}
wx.request({
method: obj.method || 'get',
url: baseUrl + obj.url,
header: obj.header || header,
data: obj.data,
success: (res) => {
// wx.hideLoading()
if (res.statusCode == 200) {
if (obj.success) {
obj.success(res)
}
} else {
console.error(res);
console.log('500')
wx.showToast({
title: '网络有点小故障,请稍后再试',
icon: "none"
})
}
},
fail: (e) => {
// wx.hideLoading()
if (obj.fail) {
obj.fail(e)
return
} else {
console.error(e);
}
wx.showToast({
title: '网络有点小故障,请稍后再试',
icon: "none"
})
},
complete: () => {
wx.hideLoading()
}
})
}