午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

vue導(dǎo)航守衛(wèi)和axios攔截器的區(qū)別

 眺朢 2020-04-20

  在Vue項目中,有兩種用戶登錄狀態(tài)判斷并處理的情況,分別為:導(dǎo)航守衛(wèi)和axios攔截器。

一、什么是導(dǎo)航守衛(wèi)?

  vue-router 提供的導(dǎo)航守衛(wèi)主要用來通過跳轉(zhuǎn)或取消的方式守衛(wèi)導(dǎo)航。(在路由跳轉(zhuǎn)時觸發(fā)

  我們主要介紹的是可以驗證用戶登錄狀態(tài)的全局前置守衛(wèi),當(dāng)一個導(dǎo)航觸發(fā)時,全局前置守衛(wèi)按照創(chuàng)建順序調(diào)用。守衛(wèi)是異步解析執(zhí)行,此時導(dǎo)航在所有守衛(wèi) resolve 完之前一直處于等待中。

1
2
3
4
5
const router = new VueRouter({ ... })
router.beforeEach((to, from, next) => {
  // ...
})

  每個守衛(wèi)方法接收三個參數(shù):

  • to:  即將要進(jìn)入的目標(biāo)路由對象

  • from: 當(dāng)前導(dǎo)航正要離開的路由

  • next: Function: 一定要調(diào)用該方法來 resolve 這個鉤子。執(zhí)行效果依賴 next 方法的調(diào)用參數(shù)。

    • next(): 進(jìn)行管道中的下一個鉤子。如果全部鉤子執(zhí)行完了,則導(dǎo)航的狀態(tài)就是 confirmed (確認(rèn)的)。

    • next(false): 中斷當(dāng)前的導(dǎo)航。如果瀏覽器的 URL 改變了 (可能是用戶手動或者瀏覽器后退按鈕),那么 URL 地址會重置到 from 路由對應(yīng)的地址。

    • next('/') 或者 next({ path: '/' }): 跳轉(zhuǎn)到一個不同的地址。當(dāng)前的導(dǎo)航被中斷,然后進(jìn)行一個新的導(dǎo)航

    • next(error): (2.4.0+) 如果傳入 next 的參數(shù)是一個 Error 實例,則導(dǎo)航會被終止且該錯誤會被傳遞給 router.onError() 注冊過的回調(diào)。

  注意:一定要確保要調(diào)用 next 方法,否則鉤子就不會被 resolved。

 

二、什么是axios攔截器?

  在請求或響應(yīng)被 then 或 catch 處理前攔截它們,分為請求攔截器(發(fā)送請求前觸發(fā))和響應(yīng)攔截器(得到響應(yīng)結(jié)果后觸發(fā))。(在請求接口調(diào)用時觸發(fā)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 添加請求攔截器
axios.interceptors.request.use(function (config) {
    // 在發(fā)送請求之前做些什么
    return config;
  }, function (error) {
    // 對請求錯誤做些什么
    return Promise.reject(error);
  });
// 添加響應(yīng)攔截器
axios.interceptors.response.use(function (response) {
    // 對響應(yīng)數(shù)據(jù)做點什么
    return response;
  }, function (error) {
    // 對響應(yīng)錯誤做點什么
    return Promise.reject(error);
  });

  注意:一定要有返回值

 

三、導(dǎo)航守衛(wèi)和攔截器的使用

  • 用戶登錄成功后我們將后臺返回的用戶token信息存儲至sessionStorage中

  

 

  • 路由跳轉(zhuǎn)時使用導(dǎo)航守衛(wèi)

   

 

  • 發(fā)送axios請求時使用攔截器

 

  

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多