前言
最近在做前端的时候,发现前端一直发送重复的请求来获取数据,虽然能使数据保持最新,但是后端的压力也大大增加。
想到Vuex能够存储数据,就打算使用Vuex来帮自己解决这个问题。
安装
执行以下命令进行安装
1
| npm install vuex@3 --save
|
配置
在项目根目录下新建store/index.js
,写入以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| import Vue from 'vue' import Vuex from 'vuex'
Vue.use(Vuex)
const state = {
}
const actions = {
}
const mutations = {
}
const getters = {
}
export default new Vuex.Store({ state, actions, mutations, getters })
|
更改main.js
,增加以下内容:
1 2 3 4 5 6
| import store from './store/index'
new Vue({ render: h => h(App), store }).$mount('#app')
|
案例代码
store/index.js
,其中etModelVersionAll
为自定义的Axios请求
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| import Vue from 'vue' import Vuex from 'vuex' import {getModelVersionAll} from '@/api'
Vue.use(Vuex)
const state = { models: [] }
const actions = { getModelVersionAll({ commit }) { getModelVersionAll().then(res => { commit('setModels', res.data.data); }) }, }
const mutations = { setModels(state, data) { state.models = data }, }
const getters = {
}
export default new Vuex.Store({ state, actions, mutations, getters })
|
在页面中使用以下代码获取数据
1 2 3 4 5 6 7 8 9 10 11 12
| export default { computed: { models() { return this.$store.state.models; } }, created() { this.$store.dispatch('getModelVersionAll'); } }
|
参考文档
【vue2】vuex的安装、配置与使用
Vuex官方文档