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

时间:2018-05-16 15:52:36

标签: vue.js nuxt.js

我正在将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

3 个答案:

答案 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() 工作正常。