鍍金池/ 問答/HTML/ Vue如何動態(tài)的設置默認路由?

Vue如何動態(tài)的設置默認路由?

1.需求是這樣的:
登錄有兩重(商戶登錄頁,用戶登錄頁):
-1- 先登錄商戶
-2- 登錄商戶成功之后,再登錄用戶
-3- 商戶第一次登錄之后以后就不需要再登錄了,直接跳轉到用戶頁面用戶登錄

2.我目前是這樣解決的:
默認路由設置成商戶登錄頁,將登錄成功之后返回的商戶id存在localStorage里面。在商戶頁created的時候,去獲取localStorage里面的值,看是否有,有的話就跳到用戶頁

3.存在的問題:
當localStorage里面有值的情況下,商戶頁也不會自動跳到用戶頁;有的時候又可以;這樣的情況出現在我手動輸入商戶url的時候,手動輸入商戶url,不會自動跳到用戶登錄頁;直接刷新又可以自動跳轉到用戶登錄頁

4.求問問題是什么,或者有更加通用一些的方式嗎(o′ω`o)?

回答
編輯回答
近義詞

手動輸入url的時候沒有觸發(fā)created()?
你兩個登錄用的是同一個組件吧
或者說,你寫created代碼的文件是兩個登錄頁面公用的才會出現這種情況

試試監(jiān)聽路由的變化

  watch: {
    '$route.name': function(val) {
      console.log(1, val)
    }
  }
2018年7月4日 08:08
編輯回答
毀與悔

這種需求可以用router.beforeEach((to, from, next)解決
token 就相當于 你存儲的一個商戶登錄狀態(tài) 一個思路 希望對你有幫助

router.beforeEach((to, from, next){
    if (getToken()) { // 
        if (to.path === '/商戶') {
          next({ path: '/用戶' }) // 如果token存在 說明已經商戶頁面登錄 跳轉用戶登錄頁面
        }else{
            // 可以加邏輯
            // 注意釋放鉤子 next()
        }
     } else {
        next({path:'/商戶'})
     }
}
2017年10月8日 07:53