Vuejs2 在Vuex存储中查看URL查询参数

Vuejs2 在Vuex存储中查看URL查询参数,vuejs2,vuex,nuxt.js,Vuejs2,Vuex,Nuxt.js,我将Nuxt.js与Vuex一起使用,我想在有人使用某个参数(ex:)进入我的web时触发一个变异,并将该参数传递给一个状态 我试图查看watchQuery属性的文档,但没有关于如何执行此操作的示例,我只是找到了这个示例,但我看不到如何使用watchQuery在Vuex存储中编写操作的任何方法 我试着写: actions: { watchQuery: true, asyncData ({ query, app }) { const { start } = query

我将Nuxt.js与Vuex一起使用,我想在有人使用某个参数(ex:)进入我的web时触发一个变异,并将该参数传递给一个状态

我试图查看watchQuery属性的文档,但没有关于如何执行此操作的示例,我只是找到了这个示例,但我看不到如何使用watchQuery在Vuex存储中编写操作的任何方法

我试着写:

actions: {
    watchQuery: true,
    asyncData ({ query, app }) {
       const { start } = query
       const queryString = start ? `?start=${start}` : ''
       return app.$axios.$get(`apps/${queryString}`)
       .then(res => {
           commit('setParam',res.data);
       })
    },
}
但这种语法是不允许的


欢迎任何帮助,提前谢谢

据我所知,watchQuery为查询字符串设置了一个观察程序,这意味着它正在等待查询更改,而页面已经呈现,从而可以再次调用类似
asyncData()
的方法。
由于您只想在用户进入页面时保存某个参数,然后将参数传递到某个状态,因此只需将asyncData方法移动到要从中获取参数的页面,您还需要从自动传递到
asyncData
的上下文中提取
store
query
,然后使用
store
query
将查询参数保存到您的状态

这里有一个简单的演示

// Your page from which you want to save the param
export default {
  asyncData({store, query}) { // here we extract the store and query
    store.state.somethingForSavingTheParam = query.nameOfTheParamYouWantToSave
     // instead of using store.state you could use store.commit(...) if that's what you want
  }
}

据我所知,watchQuery为查询字符串设置了一个观察程序,这意味着它正在等待查询更改,而页面已经呈现,从而可以再次调用类似
asyncData()
的方法。
由于您只想在用户进入页面时保存某个参数,然后将参数传递到某个状态,因此只需将asyncData方法移动到要从中获取参数的页面,您还需要从自动传递到
asyncData
的上下文中提取
store
query
,然后使用
store
query
将查询参数保存到您的状态

这里有一个简单的演示

// Your page from which you want to save the param
export default {
  asyncData({store, query}) { // here we extract the store and query
    store.state.somethingForSavingTheParam = query.nameOfTheParamYouWantToSave
     // instead of using store.state you could use store.commit(...) if that's what you want
  }
}

下面这个例子,在浏览器中输入这个url
https://example.com/?nameOfTheParamYouWantToSave=abc
应该保存
store.state.something以保存内存:'abc'不是吗?
现在这样做时,我看不到保存在store@Joe82真奇怪,在发布答案之前它对我有效,甚至现在它也有效。页面中是否有asyncData函数?没有布局?就在现场,我的布局页面上有它。将它移动到一个页面,它工作得非常完美!很高兴它能工作!另外,如果您想在更多页面中使用它,并且不想一遍又一遍地复制代码,您可以看看下面的示例,在浏览器中输入此url
https://example.com/?nameOfTheParamYouWantToSave=abc
应该保存
store.state.something以保存内存:'abc'不是吗?
现在这样做时,我看不到保存在store@Joe82这很奇怪,在发布答案之前它对我有效,即使现在它也有效。页面中是否有asyncData函数?没有布局?就在现场,我的布局页面上有它。将它移动到一个页面,它工作得非常完美!很高兴它能工作!另外,如果您想在更多页面中使用它,并且不想反复复制代码,您可以查看