首页 > 解决方案 > gridsome 在哪里添加路由器元数据

问题描述

我想用密码保护特定的路线,并想像这样为每条路线添加元数据:

{
  path: '/route-path',
  name: 'route-name',
  component: ComponentName,
  meta: {
    requiresAuth: true
  }
}

所以我可以检查一下

router.beforeEach((to, from, next)

我可以访问 main.js 中的 router.beforeEach,但是在哪里将 auth 标志添加到每个路由?gridsome.config.js 似乎不起作用?

标签: vue.jsauthenticationgridsome

解决方案


虽然目前没有记录,但您可以使用创建页面API 并将其传递给route属性,例如...

src/pages.js

module.exports = [
  {
    path: '/',
    route: {
      name: 'index',
      meta: {
        requiresAuth: false
      }
    },
    component: './src/views/Index.vue'
  }
]

gridsome.server.js

const pages = require('./src/pages')

module.exports = function (api) {
  api.createPages(({ createPage }) => {
    for (const page of pages) {
      createPage(page)
    }
  })
}

我还将页面组件移动到一个src/views目录中以避免路由自动生成。


推荐阅读