正常vue获取路由是有问题的:

    let pages = getCurrentPages(); // 当前页面路由
    let beforePage = pages[pages.length - 2]; // 上一个页面路由
    let curRoute = pages[pages.length - 1].route; //获取当前页面路由

获取上个页面路由是undif.....,这个时候问题就来了,百度搜索都是这种写法,但是不中啊!

高人指路后,使用插件解决 uni-simple-router    路由拦截器

  # 安装
  npm install uni-simple-router #  或者: yarn add uni-simple-router

  #  开始开发
  npm run dev

  #  构建静态文件
  npm run build

utils 目录下创建router.js文件

 在 main.js 全局声明:

import { router, RouterMount } from './utils/router.js'  //路径换成自己的
Vue.use(router)

原码展示,

// router.js
import { RouterMount, createRouter } from 'uni-simple-router';

const scrollInfo = {};

const router = createRouter({
	platform: process.env.VUE_APP_PLATFORM,
	routes: [
		{
			path: '*',
			redirect: (to) => {
				return { name: '404' }
			}
		},
	],

});

//全局路由前置守卫
router.beforeEach((to, from, next) => {
	let token = uni.getStorageSync('token') || ''
	if (from.fullPath == to.fullPath) {
		if (token) {
			next()
		} else {
			ZWJSBridge.close()
				.then((result) => {
					// console.log(result, "result");
				})
				.catch((error) => {
					// console.log(error, "error");
				});
		}
	} else {
		next();
	}

});

// 全局路由后置守卫
router.afterEach((to, from) => {
})

export {
	router,
	RouterMount
}

供参考:

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐