Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 如何重定向到登录,而不在vue中向历史记录添加路由?_Vue.js_Vue Router - Fatal编程技术网

Vue.js 如何重定向到登录,而不在vue中向历史记录添加路由?

Vue.js 如何重定向到登录,而不在vue中向历史记录添加路由?,vue.js,vue-router,Vue.js,Vue Router,我在:/foo页面上,单击按钮将我重定向到/bar。 但我在每次路由事件之前都会将我重定向到/login。登录后,我重定向到/bar 当我打开/bar时,我点击后退按钮进入登录页面。相反,我想得到最后一页的结果,那就是/foo 我怎么做?有没有一种方法可以重定向到登录而不向历史记录添加路由 router.beforeEach((to, from, next) => { if (!to.matched.some((record) => record.meta.auth))

我在:/foo页面上,单击按钮将我重定向到/bar。 但我在每次路由事件之前都会将我重定向到/login。登录后,我重定向到/bar

当我打开/bar时,我点击后退按钮进入登录页面。相反,我想得到最后一页的结果,那就是/foo

我怎么做?有没有一种方法可以重定向到登录而不向历史记录添加路由

  router.beforeEach((to, from, next) => {
    if (!to.matched.some((record) => record.meta.auth)) { return next(); }

    return next({
      path: '/login',
    });
  });

当您在登录组件中登录后重定向到页面时,请使用replace而不是push

loginSuccessed() {
 this.$router.replace(redirect);
}

使用route.replace代替router.push。它的行为类似于router.push,唯一的区别是它导航时没有按新的历史记录条目,正如其名称所示-它取代了当前条目

succesffulyLoggedin() {
     this.$router.replace({ name: 'dashboard' });
}

阅读这里的文档

我添加了更多解释和来源。你能欣赏一下吗?这可能对一些访问过本网站的读者有所帮助!