uniapp 封装tabbar跳转、页面跳转、刷新

256 阅读1分钟

util.js

export default {
    // 页面跳转
    redirectTo(to, param, mode) {
        let url = to;
        let tabbarList = ['xxx', 'yyy' ]
        // 携带参数
        if (param != undefined) {
            Object.keys(param).forEach(function(key) {
                if (url.indexOf('?') != -1) {
                    url += "&" + key + "=" + param[key];
                } else {
                    url += "?" + key + "=" + param[key];
                }
            });
        }
        // tabbar跳转
        for (let i = 0; i < tabbarList.length; i++) {
            if (url.indexOf(tabbarList[i]) == 0) {
                uni.switchTab({
                    url
                })
                return;
            }
        }
        switch (mode) {
            case 'tabbar':
                // 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
                uni.switchTab({
                    url
                })
                break;
            case 'redirectTo':
                // 关闭当前页面,跳转到应用内的某个页面。
                uni.redirectTo({
                    url
                });
                break;
            case 'reLaunch':
                // 关闭所有页面,打开到应用内的某个页面。
                uni.reLaunch({
                    url
                });
                break;
            default:
                // 保留当前页面,跳转到应用内的某个页面
                uni.navigateTo({
                    url
                });
        }
    },
    // 获取当前路由
    getCurrentRoute() {
        let routes = getCurrentPages(); 
        return routes.length ? routes[routes.length - 1].route : '';
    }
}