Vue+axios 實現http攔截及路由攔截例項
現如今,每個前端對於Vue都不會陌生,Vue框架是如今最流行的前端框架之一,其勢頭直追react.最近我用vue做了一個專案,下面便是我從中取得的一點收穫.
基於現在用vue+webpack搭建專案的文件已經有很多了,我就不再累述了.
技術棧
- vue2.0
- vue-router
- axios
攔截器
首先我們要明白設定攔截器的目的是什麼,當我們需要統一處理http請求和響應時我們通過設定攔截器處理方便很多.
這個專案我引入了element ui框架,所以我是結合element中loading和message元件來處理的.我們可以單獨建立一個http的js檔案處理axios,再到main.js中引入.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
loadinginstace
|
這樣我們就統一處理了http請求和響應的攔截.當然我們可以根據具體的業務要求更改攔截中的處理.
路由攔截
我們可以通過路由攔截做什麼?我認為最主要的便是對許可權的控制,比如有的頁面需要登入了才能進入,有些頁面不同身份渲染不同.接下來簡單的講一下登入攔截.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
|
這樣就做好了登入攔截.我們只需在main.js中引入router就可以了.
實現許可權的控制我們還可以通過Vuex來實現,但是如果是小型專案就沒必要引入Vuex了