前言
第一次接触
Nuxt.js
项目的朋友,打开.nuxt
文件夹内的文件改了点东西,比如路由、默认模板等,但是发现刷新编译后自动就把代码还原为初始状态了,这让人很费解。
那么问题来了,比如我想给路由(.nuxt > router.js)这块,添加一些自己的逻辑,
但每次都自己还原,该怎么办呢?先来看下面的示例:
// 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()
}
})
解决方案
您不必修改
.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'
}
SEO
Nuxt - .nuxt 文件夹下 router.js 自动更新重置(.nuxt 文件夹内的文件自动还原代码),nuxtrouter.js自动更新如何防止这种情况vuejs/nuxtjs:使用新参数更新url会将所有数据重置为初始值,nuxt路由自动重置怎么办,.nuxt 文件夹内 router.js 改了就重新变回去,.nuxt 自己还原代码,router.js 自动还原代码怎么办?