第一步:页面发送axios请求
写一个生命周期函数 created
// 写一个生命周期函数 created,页面一刷新就请求数据
created() {
// 请求数据
axios
.get("https://cnodejs.org/api/v1/topics", {
// 请求体`
params: {
page: "1",
limit: "40",
},
})
.then((res) => {
let _this = this;
// 把数据传到vuex里面
_this.$store.commit("setData", res.data.data); //res.data.data 为请求返回的数据
});
},
第二步:vuex里面接收数据
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
// 创建新一个数组存入请求到到数据
arr:[]
},
// 唯一修改state属性的方法
mutations: {
setData(state,payload){
state.arr=payload
//这里打印下看下是否有接收到,
console.log(state.arr);
}
},
actions: {
},
modules: {
}
})
第三步:在组件中按需引入
<template>
<div>
<div>{{arr}}</div>
</div>
</template>
<script>
// 按需引入vuex
import {mapState} from "vuex"
export default {
computed:{
// 到这一步就获取到数据了
...mapState(['arr'])
}
}
</script>