Dans vue2.0, le router2.0 correspondant explique que router.replace est très similaire à router.push. La seule différence est que router.replace n'ajoute pas de nouveaux enregistrements à l'historique, mais remplace l'enregistrement de l'historique actuel.
Alors, quelles sont les différences entre les scénarios d’application des deux ?
Vous pouvez considérer le routeur comme une pile d'enregistrements d'accès et
router.replace()
是替换掉栈顶,而router.push()
empiler un nouvel enregistrement dans la pile.Dans des circonstances normales, si vous souhaitez gérer les enregistrements de navigation avant et arrière, vous utilisez essentiellement
router.push()
,但是也是有一些特殊情况需要用到router.replace()
。比如,有一个授权页,用户在按流程操作时,某一步需要授权,是直接跳到授权页,授权页提交授权请求,直到成功授权后,跳到流程中的下一步操作的地址。此处,授权请求的那页面应该用replace
pour remplacer vos propres enregistrements d'accès afin d'empêcher les utilisateurs de passer à l'étape suivante, puis d'appuyer sur le bouton Précédent pour revenir à la page d'autorisation, ce qui entraîne autorisation répétée.S'il n'y a pas d'historique, le navigateur ne pourra pas retrouver la page précédente lors de son retour en arrière.