Session 在VueJS中重定向时,如何从一个组件传输到另一个组件?

Session 在VueJS中重定向时,如何从一个组件传输到另一个组件?,session,redirect,vue.js,vue-router,Session,Redirect,Vue.js,Vue Router,我目前正在开发一个登录表单,一旦用户连接,它会将用户重定向到“/admin”。但是,如果他在未登录时尝试键入“/admin”,他将被重定向到“/login” 我希望能够显示一条消息,说明他为什么会在这里(比如“你必须连接才能继续”)。我还想在他连接时键入“/login”时做同样的事情(在这种情况下,他将被重定向,并显示一条消息“你已经登录”) 我试图以不同的方式传递数据,但不知何故,我无法检索数据,我很确定这是因为我没有用正确的方式传递数据 这是“/admin”vue布局,确保用户不断登录 be

我目前正在开发一个登录表单,一旦用户连接,它会将用户重定向到“/admin”。但是,如果他在未登录时尝试键入“/admin”,他将被重定向到“/login”

我希望能够显示一条消息,说明他为什么会在这里(比如“你必须连接才能继续”)。我还想在他连接时键入“/login”时做同样的事情(在这种情况下,他将被重定向,并显示一条消息“你已经登录”)

我试图以不同的方式传递数据,但不知何故,我无法检索数据,我很确定这是因为我没有用正确的方式传递数据

这是“/admin”vue布局,确保用户不断登录

beforeCreate () {
    this.$axios.get('/logged_in')
      .then(response => {
        if (!response.data) { // either returns true or false
          this.$router.replace({ name: 'login', params: { error: 'not_logged' } })
        }
      })
  }
这是登录表单,以及我如何尝试检索参数的内容

created () {
    this.$axios.get('/logged_in')
      .then(response => {
        if (response.data) {
          this.$router.replace({ name: 'admin', params: { error: 'already_loggedin' } })
        }
      })
    console.log(this.$router.params)
  }
}

watch: {
  $route (to, from) {
    console.log(to)
    console.log(from)
  }
}
在3个
控制台.log
中,只有第一个(
this.$router.params
)实际显示在控制台中,且
未定义

我该怎么办

先谢谢你

在3个console.logs中,只有第一个(此.$router.params)实际显示

这很可能是因为您的组件在路由更改后已卸载。这就是观察者不再工作的原因

关于第一个console.log,如果您从第一个组件重定向到此处,请使用:

this.$router.replace({ name: 'login', params: { error: 'not_logged' } })
然后我认为$route.params应该有这个param(而不是$router.params)

您还可以在组件上声明道具,并从管线定义中传递道具,如下所述:

注意:

当props设置为true时,route.params将设置为组件props