vuex的用途
1. 实际开发中,只要是和后端请求数据的地方,使用vuex做异步数据流
1 api文件 负责写请求方法
import {getRequest} from "../../assets/js/utils/axios";
export function getNavData(){
return getRequest(' http://vueshop.glbuys.com/api/home/index/nav?token=1ec949a15fb709370f')
}
2. 模块中的使用
import {getNavData,getBannerData} from "../../../api/index";
export default {
namespaced:true,
state: {
navData: [],
bannerData: [],
},
mutations: {
'set_navData'(state, payload){
state.navData = payload.navData
},
'set_bannerData'(state,payload){
state.bannerData = payload.bannerData
}
},
actions: {
getNav(conText){
getNavData().then(res=>{
if(res){
conText.commit('set_navData',{navData: res.data})
}
})
},
getBanner(conText,payload){
getBannerData().then(res=>{
if(res){
conText.commit('set_bannerData',{bannerData: res.data})
if(payload.success){
payload.success();
}
}
})
},
}
3. 在组件中获取store
computed: {
...mapState({
//变量名称: state => state/模块名称/变量名称
navData: state => state.index.navData,
bannerData: state => state.index.bannerData
})
}
4. 在组件中获取mutations
methods: {
...mapMutations({
//方法名称: 模块名称/方法名称
SELECT_ITEM:"goods/SELECT_ITEM"
})
}
5. 在组件获取actions
methods: {
...mapActions({
//方法名称: 模块名称/方法名称
getNav: 'index/getNav',
getBanner: 'index/getBanner',
})
},
6. 注意点
6.1 在组件中获取vuex中的state,mutation,action,一定要先在组件里获取vuex辅助函数