首页 > 解决方案 > nuxt router.js 自动更新如何防止这种情况?

问题描述

我有一个nuxt项目。.nuxt当我想将自己的代码添加到文件中时,文件中有一个 router.js 文件,如下所示:

routes: [{
    path: "/ingelogd",
    component: _0716b7e1,
    name: "ingelogd",
    meta: {requiresAuth: true}
  }]

router.beforeEach((to, from, next)=> {
  const requiresAuth = to.matched.some(record => record.meta.requiresAuth);
  const isAuthenticated = firebase.auth().currentUser;
  if(requiresAuth && !isAuthenticated) {
    next("/reserveren")
  } else {
    next()
  }
})

它会自动将代码更新为:

routes: [{
    path: "/ingelogd",
    component: _0716b7e1,
    name: "ingelogd",
  }]

有没有人知道问题是什么,请告诉我。

标签: javascriptvue.jsnuxt.jsvue-router

解决方案


您不应修改.nuxt目录中的任何文件。在这种情况下,您应该使用中间件,在middleware项目根目录的文件夹中添加文件auth.js,其内容如下:

export default function ({ app,route }) {
 
app.router.beforeEach((to, from, next)=> {
  const requiresAuth = to.matched.some(record => record.meta.requiresAuth);
  const isAuthenticated = firebase.auth().currentUser;
  if(requiresAuth && !isAuthenticated) {
    next("/reserveren")
  } else {
    next()
  }
})

}

然后,在您的nuxt.config.js添加中:

  router: {
    middleware: 'auth'
  }

推荐阅读