vue实现动态路由

文章介绍了如何在Vue项目中使用VueRouter进行动态路由设置,包括主页、登录页面的基本配置,并提到Vuex中存储和处理后端返回的路由数据,以解决刷新页面数据丢失的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首页创建一个文件夹名为router,在下面创建一个index.js文件具体如下:

import Vue from 'vue'
import VueRouter from 'vue-router'
import Main from "@/views/Main";
import Login from "@/views/Login";
import store from "@/store"
Vue.use(VueRouter);

const routes = [
    // 加载主页
    {path: '/', component: Main, redirect: '/home', name: "main", children: [], replace: true},
    // 登录
    {path: '/login', name: 'login', component: Login}

]


const router = new VueRouter({
    routes,
})


//  动态路由核心代码

const list = store.state.tab.getList;
if (list !== null && list.length > 0) {
    list.forEach((item) => {
        router.addRoute('main', {
            path: item.name,
            name: item.name,
            component: () => import("@/views/" + item.component)
        })
    })
}


// router.addRoute('main', {path: 'home', name: 'home', component: () => import("@/views/Home")})
// router.addRoute('main', {path: 'user', name: 'user', component: () => import("@/views/User")})
// router.addRoute('main', {path: 'mall', name: 'mall', component: () => import("@/views/Mall")})

export default router

一般前端登录后,后端会返回路由的数据

vuex刷新页面数据会丢失,所以最好存在localStorage中,返回会的是数组,最好转换成字符串JSON.stringify()方法就可以。

我在vuex中直接就能取

我只需要把数据利用循环添加到addRoute()方法中就可以实现

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值