vuex中store的用法

假如我想創(chuàng)建一個(gè)文件,order.js用來(lái)管理緩存,放在store文件夾下面
1)注冊(cè)moudle
在store/index.js里面

//index.js
import Vue from 'vue';
import Vuex from 'vuex';
import OrderSystem from './order'; //商城訂單 add 引入
Vue.use(Vuex);

export default new Vuex.Store({
  modules: {
    order: OrderSystem//商城訂單 add 引入
  }
});

2)order.js編寫(xiě)方法

import Vue from 'vue';
import ApiConf from '@/config/api.conf';

const State = {
    mallOrderExportExcel: {}, //注冊(cè)變量
}

const MutAtions = {
    mallOrderExportExcel(state, data) {
        state.mallOrderExportExcel = data;
    }
}


const Actions = {

    mallOrderExportExcel({ commit }, params) {
        return new Promise((resolve, reject) => {
          const exl = { responseType: 'blob', headers: { download: '1' } };
          Vue.$api.post({ getway: ApiConf.order.$getway, api: ApiConf.order.mallOrderExportExcel }, params, exl).then(response => {
            //getway為網(wǎng)關(guān)地址,api為url子路徑
            commit('mallOrderExportExcel', response.data);//刷新緩存,調(diào)用了MutAtions的mallOrderExportExcel方法
            resolve(response.data);
          }).catch(reason => {
            reject(reason);
          });
        });
      }
 }
 
 const Getters = {
    mallOrderExportExcel: state => state.mallOrderExportExcel
 };
 
 export default {
  namespaced: true,
  strict: true,
  state: State,
  getters: Getters,
  mutations: MutAtions,
  actions: Actions
};

3)組件中應(yīng)用

computed: {
    ...mapGetters({
      mallOrderExportExcel2: 'order/mallOrderExportExcel'   //這里不是字符串的意思,是將order.js的mallOrderExportExcel賦值給mallOrderExportExcel2,這里是取緩存的值
    })
  },
  
  
   //function 
    exportexc() { 

      if (this.$refs.search.handleDatePickerChange()) {


          this.exportLoading = true;
          const formSearch = this.$refs.search.formSearch;
          const params = {
            contain_mix_pay_model: Number(formSearch.contain_mix_pay_model),
            start_date: date(formSearch.start_date),
            end_date: date(formSearch.end_date),
            is_down_load: 1
          };
          console.warn({ ...formSearch, ...params }, '參數(shù)');

          let rdata0=this.mallOrderExportExcel;//數(shù)據(jù)緩存已更新


          var url='order/mallOrderExportExcel';
          var params={name:'jiangyingying',relation:'lover'};
          this.$store.dispatch(url,  params   ).then(res => { //調(diào)用store/order.js下面的Actions:mallOrderExportExcel方法
              
              if (res.code === '40004') {
                this.$message.error(res.sub_msg);
              }
            });

          let rdata=this.mallOrderExportExcel;//調(diào)用之后,數(shù)據(jù)緩存已更新
          let _this = this;
          const file = new BlobFile({
            data: rdata,
            filename: '訂單列表',
            mime: MIME['xls'],
            endings: 'native'
          });
          file.download();
          file.destory();
          this.$message.success('導(dǎo)出成功');
          this.exportLoading = false;

      }

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

相關(guān)閱讀更多精彩內(nèi)容

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