vue uniapp 日期获取对应的星期几的中文方法

const weekDays = {
    0: '周日',
    1: '周一',
    2: '周二',
    3: '周三',
    4: '周四',
    5: '周五',
    6: '周六'
};

const dateCache = {};

function getCachedDate(dateStr) {
    if (!dateCache[dateStr]) {
        dateCache[dateStr] = new Date(dateStr);
    }
    return dateCache[dateStr];
}

tool.getWeek = function(dateStr) {
    let date = getCachedDate(dateStr);
    let dayOfWeek = date.getDay();
    return weekDays[dayOfWeek] || '';
}

通过引入weekDays对象存储星期几的映射关系,并使用dateCache对象缓存已经创建的Date对象,可以简化代码并提高性能。

### 获取当前路由信息的方法Vue 3 的 UniApp 项目中,由于不同平台(如 H5、小程序、iOS、Android)对路由信息的访问方式存在差异,直接使用 `vue-router` 的 `useRoute()` 或 `useRouter()` 可能无法在所有端生效,尤其是在真机环境中。根据实际测试和平台特性,推荐使用 UniApp 提供的 `getCurrentPages()` 方法获取当前页面的路由信息。 `getCurrentPages()` 函数返回当前页面栈的实例数组,以栈的顺序排列,第一个元素为首页,最后一个元素为当前页面。通过访问该数组的最后一个元素,可以获取当前页面的路由路径。 ```javascript // 在组件的 onMounted 生命周期中获取当前页面的路由信息 onMounted(() => { const pages = getCurrentPages(); // 获取当前页面栈实例数组 const currentPage = pages[pages.length - 1]; // 获取当前页面实例 const currentRoute = currentPage.route; // 获取当前页面的路由路径 console.log('当前页面的路由:', currentRoute); }) ``` 此方法适用于所有平台,包括 H5、小程序、iOS 和 Android,是目前在 UniApp获取当前页面路由信息最稳定的方式 [^3]。 此外,如果需要获取当前页面的完整路径(包括参数),可以通过访问页面实例的 `$page.fullPath` 属性实现: ```javascript const currentFullPath = currentPage.$page.fullPath; console.log('当前页面的完整路径:', currentFullPath); ``` 此方式在部分平台(如 H5 端)有效,但在某些小程序平台可能不支持,需根据具体平台进行测试 [^4]。 ### 获取上一个页面的路由信息 除了获取当前页面的路由信息外,还可以通过 `getCurrentPages()` 获取上一个页面的路由路径。页面栈数组中倒数第二个元素即为上一个页面的实例。 ```javascript const beforePage = pages[pages.length - 2]; // 获取上一个页面实例 if (beforePage) { const beforePageRoute = beforePage.route; console.log('上一个页面的路由:', beforePageRoute); } ``` 此方法适用于需要在页面间传递数据或进行页面跳转逻辑的场景 [^1]。 ### 结合 Vue 3 Composition API 获取路由信息 虽然在 Vue 3 的 Composition API 中可以使用 `useRouter` 和 `useRoute` 来获取路由信息,但在 UniApp 的非 H5 平台(如小程序)中,这些方法在真机环境下可能无法正常工作。因此,建议在 UniApp 中优先使用 `getCurrentPages()` 方法获取路由信息,确保跨平台兼容性 。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值