Vue 前置 后置 路由守卫 独享 路由权限控制 自定义属性
【摘要】 import Vue from 'vue'import VueRouter from 'vue-router'//导入路由器Vue.use(VueRouter)import Login from '../components/Login'import User from '../components/User'//导入需要路由的组件const router = new VueRouter({...
import Vue from 'vue'
import VueRouter from 'vue-router'
//导入路由器
Vue.use(VueRouter)
import Login from '../components/Login'
import User from '../components/User'
//导入需要路由的组件
const router = new VueRouter({
//暴露出去使用
routes:
[
{
path: '/login',
component: Login
},
{
name: 'user',
path: '/user',
component: User,
}
]
})
//全部组件进入路由之前
router.beforeEach((to, from, next) => {
next()
//放行 这样写表示全部放行
//这里可以做判断,符合条件放行
})
export default router
to:到哪去
from:从哪里来
next:是否放行
用户登录规则
if(to.path=='/user')//判断路径是否为用户中心
{
if(token....)//判断是否登录
{
next()
}
}
路由器自定义属性meta
meta属性可以自定义属性,如果网站标题,一些自定义的数据
{
path: '/login',
component: Login,
meta: { title: '用户登录', isToken: true }
},
//全部组件进入路由之前
router.beforeEach((to, from, next) => {
document.title = to.meta.title
next()
})
路由的生命周期 前置 后置
//全部组件进入路由之前
router.beforeEach((to, from, next) => {
next()
//在这里一般做权限校验
})
//路由进入之后
router.afterEach((to,from)=>{
//校验完毕 要做的事情 比较少用
})
独享路由守卫
也就是一个路由限制,如果个人中心,其他页面随便看,只有个人中心要校验权限,这个就可以使用独享路由守卫
{
//独享前置路由守卫
name: 'user',
path: '/user',
component: User,
meta: { title: '个人中心' },
beforeEnter: (to, from, next) => {
document.title = to.meta.title
next()
}
}
独享路由守卫没有 后置守卫 ,但可以配置成全局的后置路由守卫
//路由进入之后
router.afterEach((to,from)=>{
//校验完毕 要做的事情 比较少用
})
组件路由守卫
组价路由器守卫,没有前置 和 后置 这个概念
路由配置
{
name: 'user',
path: '/user',
component: User,
meta: { title: '个人中心' },
}
User组件
<script>
export default {
name: 'User',
//通过路由规则进入组件时被调用
beforeEnter: (to, from, next) => {
// ...
},
//通过路由规则离开组件时被调用 路由被切换走之前
beforeRouteLeave(to, from, next) {
// ...
}
}
</script>
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)