vue axios請求到的數(shù)據(jù)存入vuex ( /詳細精簡/)

第一步:頁面發(fā)送axios請求

寫一個生命周期函數(shù) created

//  寫一個生命周期函數(shù)  created,頁面一刷新就請求數(shù)據(jù)
 created() {
    // 請求數(shù)據(jù)
    axios
      .get("https://cnodejs.org/api/v1/topics", {
        // 請求體`
        params: {
          page: "1",
          limit: "40",
        },
      })
      .then((res) => {
        let _this = this;
        // 把數(shù)據(jù)傳到vuex里面
        _this.$store.commit("setData", res.data.data); //res.data.data 為請求返回的數(shù)據(jù)
      });
  },

第二步:vuex里面接收數(shù)據(jù)

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    // 創(chuàng)建新一個數(shù)組存入請求到到數(shù)據(jù)
    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:{
            // 到這一步就獲取到數(shù)據(jù)了
            ...mapState(['arr'])
        }
  

}
</script>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容