開始寫后臺(tái)管理的這個(gè)項(xiàng)目時(shí),用的vue-element-admin 這個(gè)后臺(tái)框架,觀察到寫請(qǐng)求方法的時(shí)候統(tǒng)一寫在一個(gè)api文件夾下,所以寫自己的接口的時(shí)候就原封不動(dòng)的照抄來了。是長(zhǎng)這樣的:

現(xiàn)在的回調(diào)還是分別寫到每個(gè)組件里邊的。直到遇見了一個(gè)需求改動(dòng): 接口返回狀態(tài)碼為101的時(shí)候,是登錄超時(shí),需要重新登錄。這一個(gè)一個(gè)的去里邊改動(dòng)的話得改到猴年馬月去了,指不定還會(huì)落下幾個(gè)。并且過程中發(fā)現(xiàn)每個(gè)接口返回都需要寫一個(gè)判斷狀態(tài)碼為1的時(shí)候彈出錯(cuò)誤。代碼重復(fù)的地方太多了。
所以開始考慮能不能抽出一個(gè)單獨(dú)請(qǐng)求數(shù)據(jù)的函數(shù),所有的請(qǐng)求和數(shù)據(jù)處理都走這一個(gè)方法。只有code值等于0的時(shí)候再返回?cái)?shù)據(jù),其余統(tǒng)一處理。然后改成下面這樣:

美滋滋的跑去試,結(jié)果$message報(bào)錯(cuò)了 ...
解決方法:
在js里的this這時(shí)指向的是window,沒有給window注冊(cè)這個(gè)方法,當(dāng)然會(huì)報(bào)錯(cuò)了。這時(shí)只要單獨(dú)引入就可以了,
import { Message } from 'element-ui';
引用: Message (options)
帶狀態(tài)圖標(biāo)的引用: Message.error(options)
手動(dòng)關(guān)閉: Message.closeAll()
$router同理~