给定以下中间件,当 store.getters.authenticated
发生变化时重新运行逻辑的最佳方法是什么,而不仅仅是在初始加载时。
middleware/auth.js
export default function ({ store, redirect }) {
if (!store.getters.authenticated) {
return redirect({ name: "login" })
}
}
最佳答案
您询问了如何在中间件本身内部重新运行它,这是可能的中间件触发器的第二部分(例如,如果用户在停留在同一页面时不再经过身份验证)并且没有任何特定操作,例如使用时我认为是轮询或网络套接字。
同时,第 1 部分是最简单的:全局调用中间件(在 nuxt.config.js
中)以在每次页面导航时触发它。
如果他停留在同一个页面上,你也可以像你一样移动路由器,但此时,检查你的 axios 是否有错误可能更合适,因为它是发起者。
我也喜欢使用 this.$nuxt.refresh()
在全局切换帐户时触发所有检查,有助于重新运行所有那些美味的 fetch()
Hook 。
关于javascript - 如果存储 getter 更改而不重新加载页面,请重新运行 nuxt 路由中间件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67689525/