javascript - 如果存储 getter 更改而不重新加载页面,请重新运行 nuxt 路由中间件?

标签 javascript vue.js nuxt.js middleware

给定以下中间件,当 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/

相关文章:

vue.js - 在 Nuxt.js 中仅构建特定页面

javascript - NuxtJS 和多级人类可读过滤器

express - 在Electronic Framework中使用Express JS和Vue.js

vue.js - 不使用npm时如何加载外部Vue组件

javascript - super(props) 为我的 React 组件做了什么?

javascript - 在 react 中的链接上添加事件类

twitter-bootstrap - 如何使 Bootstrap 事件在 vue 中工作

vue.js - nuxt watchQuery 无法使用新查询更新路由

Javascript 定位元素

javascript - 在 AJAX 之后在 jQuery 中的表元素上松动事件处理程序