在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 在vue中,如何在外部js觸發(fā)vue組件的data修改?

在vue中,如何在外部js觸發(fā)vue組件的data修改?

我把所有接口請求都封裝到了model/api.js下,在api.js里做axios請求,請求的返回里有一種錯誤碼是未登陸,我需要對這種情況的時候彈窗登錄。
請問,這個彈窗我要怎么實現(xiàn)呢?

如果彈窗是寫在main.vue里,那我需要在api.js里修改main.vue的data
或者這個data是vuex的store,那我需要在api.js里修改store
有什么好辦法或者例子嗎?,謝謝sf的大佬

回答
編輯回答
乖乖瀦

你這個回調(diào)的未登錄的錯誤碼是什么情況下出現(xiàn)的?token失效還是什么?

2018年8月22日 21:03
編輯回答
涼心人
import store from '../store/store'
import axios from 'axios'
import {SET_TOAST_INFO, SET_LOADING_STATE} from '../store/type'



axios.interceptors.request.use(config => {
    return config
}, error => {
    store.commit(SET_TOAST_INFO, {
        mode: 'danger',
        title: '貌似網(wǎng)絡(luò)出錯了,麻煩您檢查下網(wǎng)絡(luò)是否良好再來試試吧!'
    });

    return Promise.reject(error)
})
// http響應(yīng)攔截器
axios.interceptors.response.use(data => {
    return data.data;

}, error => {
    if (error.response) {
        store.commit(SET_LOADING_STATE,  false);
        switch (error.response.status) {
            case 401:
                store.commit(SET_TOAST_INFO, {
                    mode: 'danger',
                    title: '您還沒有登陸呢,馬上進行登陸吧'
                });
                window.location.href = '/#/login';
                break;
            default:
                store.commit(SET_TOAST_INFO, {
                    mode: 'danger',
                    title: '貌似網(wǎng)絡(luò)出錯了,麻煩您檢查下網(wǎng)絡(luò)是否良好再來試試吧!'
                });
                break;

        }
    }
})
2018年3月29日 03:52