推送路由(从 vueJS 移动到 nuxtJS)

新手上路,请多包涵

我正在将 VueJS 项目转换为 Nuxt.js,但我无法理解 nuxt 如何处理路由。它的文档没有说明推送路线。

使用 VueJS 我在一个组件中有以下内容。

  //template
 <input class="" type="search"
        name="q" id="q" v-model="q"
        @keyup.enter="submitSearch"
 >
 //script
  methods: {
        submitSearch() {
            this.$route.push({name: 'search', query: {q: this.q}});

            //also tried the following
            //nuxt.$router.push({name: 'search', query: {q: this.q}});

        }
    }

但这在 Nuxt 中没有任何作用。发出警报(’hi);在 submitSearch 内触发很好,但我从未被重定向到该路线。

这里的目标是当用户在搜索栏中按下回车键时,重定向到 /search?q=blablabla

编辑:

问题是用户被重定向到 /?q=blablabla 而不是 /search? ..

我刚刚意识到这是因为多语言路线有不同的名称。

我将如何推送到一个路由名称,而不是’ search ‘被命名为 search__en 动态?

原文由 user9801251 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 553
2 个回答

我最终的做法是:

 this.$router.push({path: this.localePath('search'), query: {q: this.q}});

原文由 user9801251 发布,翻译遵循 CC BY-SA 4.0 许可协议

Nuxt v2.14.12 面临同样的问题。经过一番挖掘发现 router 下的对象 this.$nuxt.$options.router 这是一个 Nuxt Helper 。目前 this.$nuxt.$options.router.push() 工作正常。

原文由 RiadSaidur 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题