阅读 578

uniapp路由管理器(uniapp路由拦截)

小编在这里给大家介绍的是uni-simple-router,如果之前有用过vue的朋友,会觉得,用的上手很快,uni-simple-router是一个专门为uniapp打造的路由管理器,和vue-router很相似。

image.png

1.打开终端输入npm命令下载

npm install uni-simple-router复制代码

2.初始化安装

npm install uni-read-pages复制代码

3.在项目的根目录创建一个vue.config.js文件

//vue.config.js
const TransformPages = require('uni-read-pages')
const {webpack} = new TransformPages()
module.exports = {
	configureWebpack: {
		plugins: [
			new webpack.DefinePlugin({
				ROUTES: webpack.DefinePlugin.runtimeValue(() => {
					const tfPages = new TransformPages({
						includes: ['path', 'name', 'aliasPath']
					});
					return JSON.stringify(tfPages.routes)
				}, true )
			})
		]
	}
}复制代码

4.再次在根目录下创建router.js文件,里面配置路由守卫

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

const router = createRouter({
	platform: process.env.VUE_APP_PLATFORM,  
	routes: [...ROUTES]
});
//全局路由前置守卫
router.beforeEach((to, from, next) => {

console.log(to,form,next)

});
// 全局路由后置守卫
router.afterEach((to, from) => { 
    
})
export {
	router,
	RouterMount
}复制代码

5.在main.js里面引入router.js

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

6.可能会遇到的问题

QQ图片20211207103418.png

1.就是你在路由守卫判断的时候需要给一个 return,不然可能会导致栈溢出。

 if(判断条件) return next()复制代码

2.如果你在router.js里面引入了createRouter,RouterMount,但是还是报错说没引入,那这可能是你下载的版本号有问题

image.png

这是小编引入的版本你可以参考一下,感谢大家对小编的支持。


作者:是一个秃头
链接:https://juejin.cn/post/7038787213982695461

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐