91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue router+vuex如何實現首頁登錄驗證判斷邏輯

發布時間:2021-08-07 09:23:32 來源:億速云 閱讀:178 作者:小新 欄目:web開發

這篇文章主要為大家展示了“vue router+vuex如何實現首頁登錄驗證判斷邏輯”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“vue router+vuex如何實現首頁登錄驗證判斷邏輯”這篇文章吧。

首頁登錄邏輯要求在頁面上判斷是否獲取到登錄token ,沒有獲取到則跳轉到登錄頁。登錄成功后,跳轉到前一個頁面。

1.vue router

路由判斷首先我們想到的是router.beforeEach 前置導航守衛 ,這個方法接受三個參數 to from next 。

to參數為即將跳轉的路由路徑,from為當前導航正要離開的路由,next方法用來resolve這個鉤子。

下面以工作中寫的一個判斷為為例子:

router.beforeEach(async (to, from, next) => {
 const { name, meta } = to;
 const { requireLogin } = meta;
 if (name === 'login') { // 如果是登錄頁則用next方法resolve掉這個鉤子,如果不是,進行到下一個判斷
  return next();  
 }
 const needLogin = requireLogin && !store.getters.user.isLogin; // 從store中讀取是否獲取了已登錄的信息
 if (needLogin) {
  return next({  // 如果沒有則跳轉到登錄頁,將當前路由路徑放到參數中
   name: 'login',
   params: { back: to },
  });
 }
 return next(); 
});

2. this.$router 與 this.$route   this.$router.push 與 this.$router.replace

在登錄頁完成登錄請求后進行下面的操作

獲取路徑中存放前一個路徑的參數 ,然后跳轉到該頁面

 loginSuccess() {
   const { params: { back } } = this.$route;
   const route = back || { name: 'home' };
   const { name, params, query } = route;
   this.$router.replace({ name, params, query });
  },

在上面這段代碼中出現了兩個我們經常混淆的概念:

我們知道this.$router是router實例,可以用來直接訪問路由。我們稱router配置中每一個對象為一個路由記錄,this.$route是暴露出來用來訪問每個路由記錄的。因此我們獲取參數時使用的是this.$route 跳轉路由時使用的是道this.$router。

上端代碼中我們使用了replace而不是push來跳轉路由,這兩者的區別是會不會在history中產生記錄。replace不會新增記錄,而是直接替換掉了這條路由記錄。

以上是“vue router+vuex如何實現首頁登錄驗證判斷邏輯”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泽普县| 贡觉县| 蓝田县| 巴中市| 桐乡市| 江门市| 大理市| 达州市| 文山县| 达尔| 马边| 房产| 陵水| 新蔡县| 涟源市| 友谊县| 阳曲县| 定西市| 台山市| 通化县| 富宁县| 武川县| 广安市| 南投市| 阳春市| 油尖旺区| 新安县| 包头市| 钦州市| 淳化县| 搜索| 阿鲁科尔沁旗| 龙里县| 杭锦后旗| 平陆县| 邯郸市| 连山| 洱源县| 巫溪县| 美姑县| 永嘉县|