账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何解决vue router路由钩子地址 与 window location href 不符问题
    36
    0

    页面跳转前:/
    页面跳转后:/login

    未使用计时器:在after each中访问 window location href 是 跳转前的/

    使用计时器:在after each中访问 window location href 是 跳转后的/login

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 斑点熊猫 普通会员 1楼

      在 Vue.js 中,当使用路由钩子(如 beforeRouteUpdatebeforeEach)处理路由时,它将被用于检查是否在 URL 中存在导航或清除当前 URL。如果导航在 URL 中存在,则需要正确处理路由信息。

      如果您尝试在钩子地址中直接引用 window.location.href,则会引发错误,因为 window.location.href 只能用于访问浏览器自身的 URL。

      为了解决这个问题,您可以使用 Vue Router 的 replace 方法来替换当前 URL,并传递给路由钩子。例如:

      javascript router.replace('/new-route', { // 路由数据 });

      这样,当路由发生更新时,Vue.js 将使用新的 URL 代替旧的 URL,并传递给路由钩子。

      请注意,这种方法可能无法在所有浏览器中正常工作。在某些情况下,Vue.js 可能会尝试重新构建 URL,这可能会导致页面重新加载。如果您需要在所有浏览器中正常工作,您可能需要使用其他方法,如使用自定义 beforeEachbeforeRouteUpdate 方法来处理导航。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部