vue axios请求到的数据存入vuex ( /详细精简/)

第一步:页面发送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>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。