如何在Nuxt.js中设置beforeResolve导航保护

时间:2018-11-15 15:16:37

标签: vue.js vuex vue-router nuxt.js

是否可以在nuxt.config.js中添加beforeResolve导航保护?

我的nuxt.config.js

// @flow strict

const hasKey = (o: Object): (string => boolean) =>
  Object.prototype.hasOwnProperty.bind(o);

const union = (os: Array<Object>): Object =>
  os.reduceRight((acc, o) => ({ ...acc, ...o }), {});

但是它永远不会被调用!

我一直在尝试根据vuex存储上的登录用户状态在安装组件之前实现重定向。

1 个答案:

答案 0 :(得分:1)

您有2个选择。您可以通过中间件或在相应页面中设置全局规则。

// middleware/route-guard.js
export default function ({ app }) {

    app.router.beforeResolve((to, from, next) => {
        if (app.store.getters.isLoggedIn) {
            next('/resource')
        } else {
            next();
        }
    });

}

// Nuxt Page Component
export default {
    beforeResolve (to, from, next) {
        if (this.$store.getters.isLoggedIn) {
            next('/resource')
        } else {
            next();
        }
    }
  }