Vue js在输入框中编写内容时刷新参数URL。重新加载后出现?#

问题描述 投票:0回答:1

我正在与vue js聊天。我遇到了vue-router参数的问题。

[当我单击特定的聊天以打开时。它会加载下一个网址。

enter image description here

但是当我在输入中写东西并发送消息时,它会重新加载页面并标记#?。enter image description here

我在已装入的生命周期中重新加载,请挂钩参数以进行更新。

 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不会在参数更改时刷新组件。

我该如何解决这个问题。

javascript vue.js vue-router
1个回答
0
投票

嘿,这与Vue路由器的默认状态有关。

如果您将Vue-Router状态更改为history,它将不会尝试添加#导致站点损坏。

这是一段有用的视频,解释了历史与哈希:https://www.youtube.com/watch?v=js5Sr_ZSHDs


如果路由器仍然无法解决路由更改问题,您可以像这样watch路由:

watch: {
    $route(to, from) {
      // if(to !== from) { compute changes }
    }
  }
© www.soinside.com 2019 - 2024. All rights reserved.