首页 > 解决方案 > 有什么方法可以获取当前页面的 nuxt.js 中间件?

问题描述

我很好奇我们是否可以从任何组件访问当前页面的中间件?

标签: vue.jsnuxt.js

解决方案


中间件在组件之前执行,并且不会以任何方式在组件内初始化。

更新:auth在存储中保持中间件的状态。

export const state = () => ({
  isPrivate: false,
})

export const mutations = {
  setPrivatePage(state, value) {
    state.isPrivate = value
  },
}

export const actions = {
  privatePage({ commit }) {
    commit('setPrivatePage', true)
  },

  publicPage({ commit }) {
    commit('setPrivatePage', false)
  },
}

middleware/auth在to set中调度操作isPrivate

await store.dispatch('auth/privatePage')

我添加了另一个名为的中间件将public其设置回false

export default async ({ store }) => {
  await store.dispatch('auth/publicPage')
}

最后要触发public每条路线,将其添加到nuxt.config.js

  // Router
  router: {
    middleware: 'public',
  },

推荐阅读