【问题标题】:Vue router - Handle query paramsVue 路由器 - 处理查询参数
【发布时间】:2017-06-22 14:39:28
【问题描述】:

我有一个<search-bar> 组件,它有一些我将用作过滤器搜索的下拉列表。当我按下submit 按钮时,我运行以下代码:

search() {
  let query = {
      status: this.selectedOrderStatus
  };

  this.$router.push({ path: '/', query: query })
}

这会将我的网址更改为:http://localhost:8080?status=1http://localhost:8080?status=2 并且可以。

在另一个组件(即/ 组件)中,我放置了一个手表来处理 url 更改,如下所示:

watch: {
 '$route': 'loadOrders'
},

所以,当我在下拉列表中选择一个值时,组件会重新加载。

但是,如果我在 url http://localhost:8080?status=1 上并且我按下 提交按钮 什么都不会发生。我必须选择另一个值(例如 2)来重新加载。

每次按下提交按钮时如何处理重新加载?因为,我想再次按“提交”,使用相同的参数。

【问题讨论】:

标签: vue.js vue-router


【解决方案1】:

由于您在提交时没有更改查询参数,因此 Vue 不会检测到更改并且相应地不会重新加载您的组件。 对于您的情况,我建议您直接从您提交表单的位置致电您的loadOrders

点击提交时发出一个事件,尽量不要依赖路由。 https://vuejs.org/v2/guide/components.html#Non-Parent-Child-Communication

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    相关资源
    最近更新 更多