vue単一ページ項目は前のページに戻るのは無効で、リンクは変わりましたが、ページは変わりません.

1278 ワード

最近のプロジェクトでは、前のページに戻っても効果がなく、長い間調べてから問題が発見され、ルーティングガードの書き方が規範化されていないためです.
 
プロジェクトではルートガードでログインブロックを行い,ログインしていないものはログインページにジャンプする.ページのジャンプもブロックも問題ありませんが、前のページに戻るとだめで、間違いもありません.
コードを貼り付ける
router.beforeEach((to, from, next) => {  
  if (to.meta.loginCheck) {     //    ,          ,     ,    
    let gesToken =localStorage.getItem('gesToken');
    if(gesToken){ 
      next();
    }else{
      router.replace({path:'/login'});
   
next();  // ,bug
}; } else { next(); }; });

 
next()の役割は次のページをジャンプすることだと思っていたが、正常に前のページに戻ることができなかったのは、routerを使ったからだ.replace()の後、next()は使用されません.
next()はどんな場合でも書かなければなりません!!
 
転載先:https://www.cnblogs.com/LChenglong/p/11202177.html