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.titlenext()})
路由的生命周期 前置 后置
//全部组件进入路由之前
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.titlenext() }}
独享路由守卫没有 后置守卫 ,但可以配置成全局的后置路由守卫
//路由进入之后
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>