我正在与vue js聊天。我遇到了vue-router参数的问题。
[当我单击特定的聊天以打开时。它会加载下一个网址。
但是当我在输入中写东西并发送消息时,它会重新加载页面并标记#?。
我在已装入的生命周期中重新加载,请挂钩参数以进行更新。
mounted() {
this.eventId = this.$route.params.id;
this.senderUserId = this.$route.params.userId;
this.senderUserName = this.$route.params.name;
}
我的路由:
{
name:'chatroom',
path:'/chat/:id/:userId/:name',
component:chatRoom,
meta:{
requiresAuth: true
},
},
经过搜索,我发现这是因为Vue不会在参数更改时刷新组件。
我该如何解决这个问题。
嘿,这与Vue路由器的默认状态有关。
如果您将Vue-Router状态更改为history
,它将不会尝试添加#导致站点损坏。
这是一段有用的视频,解释了历史与哈希:https://www.youtube.com/watch?v=js5Sr_ZSHDs
如果路由器仍然无法解决路由更改问题,您可以像这样watch
路由:
watch: {
$route(to, from) {
// if(to !== from) { compute changes }
}
}