VUE--router路由--路由守卫--路由跳转--路由懒加载--路由重定向

本文介绍了如何在Vue.js项目中使用Vue Router进行路由配置,包括重定向、路由懒加载、嵌套路由和动态路由。同时,展示了全局路由守卫的实现,用于权限管理,拦截无权访问的页面,并演示了在组件内进行路由跳转及传递参数的方法。此外,提供了项目源码的百度网盘链接。
摘要由CSDN通过智能技术生成
import Vue from 'vue'
import VueRouter from 'vue-router'
// import Film from '../views/Film.vue'
Vue.use(VueRouter)
const routes = [
    // 重定向
    {
        path: '*',
        redirect: '/film'
    },
    {
        path: '/film',
        component: () => import('@/views/Film.vue'),//路由懒加载
        // 嵌套路由
        children: [
            {
                path: 'nowplaying',
                component: () => import('@/views/film/Nowplaying.vue')
            },
        ]
    },
    // {
    //     path:'/detail/:myid',//动态路由
    //     component:Detail,
    //     name:'kerwinDetail'
    // },
    {
        path: '/detail',
        component: () => import('@/views/Detail.vue'),
    },
    {
        path: '/center',
        component: () => import('@/views/Center.vue')
    }, 
]
const router = new VueRouter({
    //路由模式 
    // a.hash     #/home  
    // b.history  /home
    mode: 'hash',
    routes
})
// 全局路由守卫
router.beforeEach((to, from, next) => {
    const auth = ['/center', '/order']
    if (auth.includes(to.fullPath)) {
        // 拦截
        if (!localStorage.getItem('token')) {
            next('/login')
        } else {
            // 放行
            next()
        }
    } else {
        next()
    }
})
export default router

// 组件内的路由拦截

    beforeRouteEnter(to,from,next){
        // 拦截
        if(!localStorage.getItem('token')){
            next('/login')
        }else{
            next()
        }
    },

路由跳转

跳转携带参数

 handleClick(id){
        // 1.路径
        // this.$router.push(`/detail/${id}`)
        // 2.路由名字
        // this.$router.push({
        //     name:'kerwinDetail',
        //     params:{
        //         myid:id
        //     }
        // })
        // 3.query方式跳转详情
        this.$router.push(`/detail?id=${id}`)
    },

目标页获得参数

	// 1,2
    console.log(this.$route.params.myid);
    // 3
    console.log(this.$route.query.id);

路由配置

//1,
{
    path:'/detail/:myid',//动态路由
    component:Detail,
    name:'kerwinDetail'
},
//2,3
{
    path: '/detail',
    component: () => import('@/views/Detail.vue'),
},

项目源码:
链接:https://pan.baidu.com/s/1K8HnVEZy87O6-gl6qsZnxw
提取码:t70u
复制这段内容后打开百度网盘手机App,操作更方便哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值