我正在将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内部触发了很好但我从未被重定向到该路径。
此处的目标是当用户在搜索栏中按Enter键,重定向到/ search?q = blablabla
编辑:
问题是用户被重定向到/?q=blablabla
而不是/search?
..
我刚才意识到这是因为多语言路线有不同的名称。
我将如何推送到一个路线名称而不是“search
”被动态命名为search__en
?
答案 0 :(得分:1)
我最终做到的方式是:
this.$router.push({path: this.localePath('search'), query: {q: this.q}});
答案 1 :(得分:1)
这不是一个直接的答案,但是在使用哈希算法时,我发现它可以很好地工作。如果将来有任何问题,请回来编辑。
this。$ router.push(#${hash}
);
答案 2 :(得分:0)
Nuxt v2.14.12 遇到同样的问题。经过一番挖掘,在 router
下发现了 this.$nuxt.$options.router
对象,这是一个 Nuxt Helper。目前 this.$nuxt.$options.router.push()
工作正常。