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
寫在文章的最後