在uniapp使用中,对于登录界面可能需要路由守卫进行方便判断跳转
封装了一个相当于路由前置守卫的方法
router.js
// 定义路由菜单,自定义needLogin判断该路由是否需要登录
const routes=[
{
path: '/pages/home/home',
needLogin: false
},
{
path: '/pages/cart/cart',
needLogin: true
}
]
// to是要去的页面,type是跳转方式 默认 navigateTo,与uniapp跳转方式一致
const nav=(to,type='navigateTo')=>{
//在路由菜单中找到要去的页面
const route=routes.find(item=>item.path===to)
// 进行判断 如果可以直接跳转 不可以就跳转到其他页面
if(!route.needLogin){
uni[type]({
url: to
})
}else{
uni[type]({
url: '/pages/home/home'
})
}
}
// 到处 nav方法
export {
nav
}
方法的使用
// 引入nav方法
import {nav} from '../../utils/router.js'
export default {
data() {
return {
}
},
// 在onShow中调用
onShow(){
// 第一个参数是 跳转的页面, 第二个参数是跳转方式
nav('/pages/cart/cart','switchTab')
},
}