【问题标题】:Why router query not update immediately in nuxt?为什么路由器查询不会在 nuxt 中立即更新?
【发布时间】:2021-06-11 07:24:47
【问题描述】:

当我触发更新查询的函数时,url 变为 '?test=1' 但查询的控制台日志仍然为空。

methods: {
  test() {
    this.$router.push({ query: { test: 1 } });
    console.log(this.$route.query);
  }
}

但我在 Vue 中使用相同的方法。查询的控制台日志获取 {test:'1'} 工作正常。 如果我想立即在 Nuxt 中得到正确的查询,我该怎么办? 我知道有两种方法可以工作

  1. 观看
  2. setTimeout(()=>{console.log(this.$route.query)},0);

但是我想使用更好的解决方案,还有其他方法可以吗?

【问题讨论】:

    标签: vue.js nuxt.js vue-router


    【解决方案1】:

    您可以在$route.query 上使用watch

    methods: {
      test() {
        this.$router.push({ query: { test: 1 } });
      },
    },
    watch: {
      '$route.query'(q) {
        console.log(q);
      },
    },
    

    【讨论】:

    • 哦,我忘了说。我尝试了 2 种方法可以工作 1. 观看 2. settimeout(()=>{console.log(this.$route.query)},0) 但我想知道其他任何方法。因为我想使用更好的解决方案。非常感谢。
    • 您的手表有什么问题?您为什么要寻找不同的解决方案?
    • 我认为 watch 会失去性能,而 setTimeout 看起来很丑的代码。所以我想知道任何其他方法可以工作。
    • 你对手表有错误的认识,对性能没有任何损害。它只是监听依赖项的变化。
    • 我以为手表会一直占用内存。嗯...好的,我想我需要审查文件。
    猜你喜欢
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 2022-08-17
    • 2018-11-08
    • 2023-03-06
    • 2012-05-07
    • 1970-01-01
    • 2012-09-22
    相关资源
    最近更新 更多