小程序:(微信小程序)小程序中使用自定義函數(shù)

我們?cè)陂_(kāi)發(fā)微信小程序的時(shí)候,會(huì)用到自定義的函數(shù)功能,那么我們?nèi)绾卧谛〕绦蛑袑?xiě)這些JS,又如何在WXML中調(diào)用它們呢 ?換句話(huà)說(shuō)在微信小程序{{}}中直接調(diào)用自定義的函數(shù)

詳細(xì)見(jiàn)微信小程序的API:https://developers.weixin.qq.com/miniprogram/dev/reference/wxs/01wxs-module.html

本文以一個(gè)小的例子予以說(shuō)明:

一、創(chuàng)建公共的JS文件

本著代碼的規(guī)范化和項(xiàng)目的工程化,小程序中公共JS文件一般創(chuàng)建在utils目錄下,這樣,我們就可以在每個(gè)模塊頁(yè)面里調(diào)用它。比如:這里創(chuàng)建了一個(gè)公共文件:time.wxs(PS:微信小程序的公共文件一定要是wxs后綴),如圖所示:

在utils公共文件目錄下新建wxs文件

二、編寫(xiě)相關(guān)應(yīng)用函數(shù)

打開(kāi)time.wxs文件,然后在里面編寫(xiě)函數(shù)

/**
* 時(shí)間格式化:年月日是分秒
* @param {*} timestamp :時(shí)間戳13位
* @param {*} type:需要轉(zhuǎn)化后的時(shí)間格式
* eg. cn: 2020年3月02日 ; en:2020.03.02
*/

var timeFormat = {
    timestampToTime: function (timestamp, type) {
        if (timestamp && type === 'cn') {
            var date = getDate(timestamp);//時(shí)間戳為10位需*1000,時(shí)間戳為13位的話(huà)不需乘1000
            var Y = date.getFullYear() + '年';
            var M = (date.getMonth() + 1 < 10 ? (date.getMonth() + 1) : date.getMonth() + 1) + '月';
            var D = date.getDate() + '日';
            var h = date.getHours() < 10 ? '0' + (date.getHours()) + ':' : date.getHours() + ':';
            var m = date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes();
            var s = date.getSeconds();

            return M + D + h + m;
        }

        if (timestamp && type === 'en') {
            var date = getDate(timestamp);//時(shí)間戳為10位需*1000,時(shí)間戳為13位的話(huà)不需乘1000
             var Y = date.getFullYear() + '.';
             var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '.';
             var D = date.getDate() + '';
             var h = date.getHours() < 10 ? '0' + (date.getHours()) + ':' : date.getHours() + ':';
             var m = date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes();
            var  s = date.getSeconds();

            return Y + M + D;
        }
    }
};

// 導(dǎo)出對(duì)外暴露的屬性
module.exports = {
    timestampToTime: timeFormat.timestampToTime
}

說(shuō)明:

1 定義一個(gè)整體變量,以var開(kāi)頭,
      var 變量 = {};*
2、編寫(xiě)函數(shù)。函數(shù)格式為:
      函數(shù)名:**function**(**參數(shù)**) **{**},具體參見(jiàn)上面的例子*
3、通過(guò)module.exports引用函數(shù),寫(xiě)法如下:
      module.exports={被使用的函數(shù)名:變量.具體函數(shù)}*

其他說(shuō)明:

WXS 中不能調(diào)用 javascript 中定義的函數(shù)或者變量,也不能調(diào)用小程序提供的API,他的運(yùn)行環(huán)境和 javascript 是隔離的。
只能使用 var 來(lái)定義變量,表現(xiàn)形式和 javascript 一樣,會(huì)有變量提升。
所以在上例中不能使用 new Date() ( var date =new Date(timestamp);) 應(yīng)該使用getDate(),即獲取當(dāng)前日期使用getDate(),使用var聲明變量

三、如何試用

1、在使用的頁(yè)面頭部引入文件,引入方式是:

<wxs module="time" src="../../utils/time.wxs"></wxs>

說(shuō)明:module="文件名",我在utils文件夾里定義的文件名是time,所以這里的名稱(chēng)與之對(duì)應(yīng)
2、函數(shù)調(diào)用

<view class="msg">{{time.timestampToTime(item.endTime, "cn")}}我在這里執(zhí)行自定義函數(shù)</view>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容