EA&UML日拱一卒-0基础学习微信小程序(13)-一个都不能少
经过两篇文章的积累,我们回到Hello world中来。
util.js
这段代码包含3个段落,按照参照关系逐一说明。
格式化数字函数
function formatNumber(n) {
n = n.toString()
return n[1] ? n : '0' + n
}
这个函数用于将日期和时间数字转换成字符串,如果字符串为一个字符,则前面加0。
格式化日期/时间函数
function formatTime(date) {
var year = date.getFullYear()
var month = date.getMonth() + 1
var day = date.getDate()
var hour = date.getHours()
var minute = date.getMinutes()
var second = date.getSeconds()
return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}
这个函数将包含时刻信息的日期数据转换为字符串。它的主要功能是在return语句中实现的。
这个语句首先调用map方法,利用formatNumber函数将将年月日数字数组转换成年月日字符串数组,然后调用join方法将字符串数组中的元素用‘/’连接起来。
接下来调用map方法,利用formatNumber函数将将小时分秒数字数组转换成字符串数组,然后调用join方法将字符串数组中的元素用‘:’连接起来。
最后将日期字符串和时刻字符串用“ ”连接起来返回。
对外暴露接口
module.exports = {
formatTime: formatTime
}
util.js是一个单独的 js 文件模块。而模块可以通过 module.exports
()对外暴露接口。本例中将formatTime函数以formatTime的名称暴露给其他模块。
logs.js
//logs.js
var util = require('../../utils/util.js')
Page({
data: {
logs: []
},
onLoad: function () {
this.setData({
logs: (wx.getStorageSync('logs') || []).map(function (log) {
return util.formatTime(new Date(log))
})
})
}
})
为了使用util.js中暴露的format函数,首先使用 require(path)
将公共代码引入本文件中。
在本页面的生命周期函数onLoad中,首先从小程序临时存储中取出logs数组,然后对它的每个元素调用util.js中的formatTime函数,将日期数据逐个转换。最后将结果生成字符串数组并设定到页面data中的logs数组中以供显示。
log数据在小程序启动时形成,在log页面表示是被显示。
参考资料
函数的暴露和引用:
https://mp.weixin.qq.com/debug/wxadoc/dev/framework/app-service/module.html
写在文章的最后