小程序常用方法

2022/11/11 微信小程序

注:公共方法建议写在util下的util.js文件中

// 示例
const 方法名 = (入参) => {
    方法体
}
// 导出方法
module.exports = {
    方法名
}
// 在其他页面使用
import { 方法名 } from "/util/util.js"

# 加载提示

需搭配vant-weapp组件 (opens new window)使用

/**
 * 加载提示
 * @params text:提示文本;time:提示时长
 */
const loading = (text, time) => {
    Toast.loading({
        message: text ? text : '加载中...',
        forbidClick: true,
        loadingType: 'spinner',
        duration: time ? time : 0
    });
}

# 返回页面判断

/**
 * 判断是否有返回页面
 * 有页面返回true,否则返回false
 * @params
 */
const judgeBackPage = () => {
    const pages = getCurrentPages();
    // console.log("page", pages);
    if (pages.length == 1) {
        return false
    } else {
        return true
    }

}

# 加载页面

/**
 * 加载页面
 * @params len:需加载的页面位置(1:当前页面,2:上一个页面...以此类推)
 */
const reloadPage = (len) => {
    const pages = getCurrentPages();
    const rePage = pages[pages.length - len]
    if (rePage) {
        rePage.onLoad()
    }
}

# 获取页面元素

/**
 * 获取页面元素
 * @params id:页面元素id
 */
const getElement = (id) => {
    return new Promise((resolve, reject) => {
        const el = wx.createSelectorQuery();
        el.select(`.${id}`).boundingClientRect();
        el.exec(function (rect) {
            if (rect[0]) {
                resolve(rect)
            } else {
                reject("获取失败");
            }
        });
    })
}

# 格式化日期

/**
 * 格式化日期(年月日 时分秒 周)
 * @params date:Date对象new Date();sign:年月日间隔符
 */
const formatTime = (date, sign) => {
    const year = date.getFullYear()
    const month = (date.getMonth() + 1 + "").padStart(2, "0")
    const day = (date.getDate() + "").padStart(2, "0")
    const hour = (date.getHours() + "").padStart(2, "0")
    const minute = (date.getMinutes() + "").padStart(2, "0")
    const second = (date.getSeconds() + "").padStart(2, "0")
    const week = date.getDay()
    const weekArr = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];

    return `${[year, month, day].join(sign ? sign : '-')} ${[hour, minute, second].join(':')} ${weekArr[week]}`
}
更新时间 : 2022年11月11日星期五下午3点22分