nuxt 设置路由的meta属性,nuxt 怎么设置路由的meta,nuxt 怎么设置router的meta

66 篇文章 1 订阅
31 篇文章 1 订阅

nuxt 官网说的 专注于UI的渲染,作者想试一下用来写后台管理的界面感觉何如,可以开启 spa模式,或者不改变,也会有不一样的体验哦.
基于nuxt.js的管理后台项目,一个项目部署,可以一站式管理数据库和你的业务的增删改查操作,项目暂未完善,待完善后开源于github
 

一个问题,想了好多种办法,终于用了一个笨方法解决了这个问题

如下所示:

 

routes.js 如下:

/**
 * nuxt的路由菜单配置
 * @description 仅仅只用于侧边栏的菜单显示和权限,其它的不做任何功能
 */
const menus = [{
        meta: {
            requireAuth: false, //菜单权限
            title: '系统首页', //菜单名
            icon: 'fa fa-bar-chart', //菜单图标
        },
        path: "/dashboard",
        name: "dashboard",
    },
    {
        meta: {
            requireAuth: false, //菜单权限
            title: '欢迎页', //菜单名
        },
        path: "Welcome",
        name: "dashboard-Welcome"
    },
    {
        meta: {
            requireAuth: false, //菜单权限
            title: '示例功能', //菜单名
            icon: 'fa fa-bar-chart', //菜单图标
        },
        path: "/demos",
        name: "demos",
    },
    {
        meta: {
            requireAuth: false, //菜单权限
            title: '列表Demo', //菜单名
        },
        path: "List",
        name: "demos-List"
    },
    {
        meta: {
            requireAuth: false, //菜单权限
            title: '列表详情', //菜单名
        },
        path: "List/Detail/:id?",
        name: "demos-List-Detail-id"
    },
    {
        meta: {
            requireAuth: false, //菜单权限
            title: '数据分析', //菜单名
            icon: 'fa fa-bar-chart', //菜单图标
        },
        path: "/datas/UserAnalysis",
        name: "datas-UserAnalysis"
    },
    {
        path: "/",
        name: "index"
    }
];


/**
 * 递归查询路由权限
 * @param {*} list
 * @param {*} menu
 */
const iterator = (list) => {
    for (let item in list) {
        for (const m in menus) {
            if ((list[item].name === menus[m].name) && (list[item].path === menus[m].path)) {
                console.log((list[item].name === menus[m].name) && (list[item].path === menus[m].path));
                list[item].meta = menus[m].meta;
                list[item].meta.requireAuth = true;
            }
        }
        if (list[item].children && list[item].children.length > 0) {
            iterator(list[item].children);
        } else {
            return list;
        };
    }
};

export default (routes, resolve) => {
    routes = iterator(routes);
    console.log(routes);
};

 

然后设置nuxt.config.js

nuxt.config.js 如下配置:


    router: { //中间件允许您定义一个自定义函数运行在一个页面或一组页面渲染之前。
        middleware: ['authorities'],
        extendRoutes: routes
    },

 

这个问题暂时得到了解决,可以根据routes生成标签导航/侧边栏菜单/面包屑导航等:

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狼丶宇先森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值