vue.js - Nuxt.js:从 vuex 开始加载指示器

标签 vue.js vuex nuxt.js

根据文档,有一种方法可以在组件中手动启动 nuxt 加载指示器:

export default {
    methods: {
        startLoading() {
            this.$root.$loading.start();
        },
    },
}

有什么方法可以从 vuex Action 切换加载器吗?如何从 vuex 操作访问 $root 对象?

最佳答案

甜!显然它可以通过客户端上可用的 window 属性访问。建议通过检查 process.browser:

来确认操作是在客户端而不是服务器上运行的
export const actions = {
    startLoading({ commit }) {
        if (process.browser) {
            window.$nuxt.$root.$loading.start();
        }
        commit('SET_LOADING', true);
    },
    finishLoading({ commit }) {
        if (process.browser) {
            window.$nuxt.$root.$loading.finish();
        }
        commit('SET_LOADING', false);
    },
}

很酷。这些 Action 是从 axios 拦截器中调用的,所以现在它指示在向服务器发出任何请求时全局加载。

关于vue.js - Nuxt.js:从 vuex 开始加载指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51270636/

相关文章:

nuxt.js - 如何在 Nuxt 配置中设置 .env 文件路径?

javascript - 使用 Nuxt/Vue.js 划桨

javascript - 如果我使用 vm.$watch API,是否需要删除组件 destroyed() 上的观察者?

vue.js - 数据全部存储在vuex好还是redux好?

vue.js - Vuejs 有效负载在突变中未定义。 'Cannot set property of undefined'

javascript - Vue Actions 中的菊花链式 promise 会导致无限循环

vue.js - Nuxt + Vuetify。如何应用主题颜色

vue.js - 如何阻止 vue cli3 构建将 vue.js.min 包含在我的 chunk-vendors.js 文件中?

vue.js - 如何使用 Vue.js 和 Vuelidate 验证模糊字段

javascript - 什么时候使用基础 Vue 实例、Vuex 或 mixin?