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