Nuxt vuex - 从 Vue 移动商店

时间:2021-02-19 10:14:04

标签: axios nuxt.js vuex

我一直在忙着将我在 Vue 中完成的教程转移到 Nuxt。我已经能够让一切正常工作,但是我觉得我没有按照“正确的方式”去做。我已经添加了 Nuxt axios 模块,但无法让它工作,所以我最终只使用了通常的 axios npm 模块。这是我的商店:

import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'
import VueAxios from 'vue-axios'

Vue.use(Vuex)
Vue.use(VueAxios, axios)

export const state = () => ({
  events: []
})

export const mutations = {
  setEvents: (state, events) => {
    state.events = events
  }
}

export const actions = {
  loadEvents: async context => {
    let uri = 'http://localhost:4000/events';
    const response = await axios.get(uri)
    context.commit('setEvents', response.data)
  }
}

我想知道如何使用@nuxtjs/axios 模块重写这个商店。我也不认为我需要在这里导入 vuex,但如果我不这样做,我的应用程序将无法运行。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

使用 @nuxtjs/axios 模块,您可以在您的 nuxt.config.js 中配置 axios:

// nuxt.config.js
export default {
  modules: [
    '@nuxtjs/axios',
  ],

  axios: {
    // proxy: true
  }
}

您可以通过 this.$axios

在您的商店(或组件)中使用它
// In store
{
  actions: {
    async getIP ({ commit }) {
      const ip = await this.$axios.$get('http://icanhazip.com')
      commit('SET_IP', ip)
    }
  }
}
相关问题