vue router跳转及刷新问题?

需求是点退出后返回首页,碰到的问题是如果当前正好在首页点的退出,页面不会刷新,请问该如何处理?

加了随机参数也没用

function logout() {
        console.log('退出');
        localStorage.removeItem('access_token');
        localStorage.removeItem('refresh_token');
        const hash = Math.random();
        router.push({ path: '/home', query: { hash } })
            .then(() => {
                console.log('退出成功');
            }).catch(error => {
                console.log(error);
            });
    }
阅读 2.3k
4 个回答

navigation.reload()
重新加载页面

你可以讲讲为什么需要刷新吗,如果是为了接收不同的参数,可以使用路由守卫,或者简单粗暴reload刷新页面

可以参考vue-element-admin的做法:

  1. 添加redirect路由,该路由仅用于跳转

    <script>
    export default {
      created() {
     const { params, query } = this.$route
     const { path } = params
     this.$router.replace({ path: '/' + path, query })
      },
      render: function(h) {
     return h() // avoid warning message
      }
    }
    </script>
    
    {
     path: '/redirect',
     component: Layout,
     hidden: true,
     children: [
       {
         path: '/redirect/:path(.*)',
         component: () => import('@/views/redirect/index')
       }
     ]
      },
  2. 刷新页面跳转至redirect路由即可

    this.$router.replace({
       path: '/redirect' + fullPath
    })
  1. 判断当前页是否首页
  2. 点退出时,如果首页进行刷新数据,否则跳转首页
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题