Ответ
В Vuex query обычно относится к параметрам запроса (query parameters) в URL, но сам Vuex не имеет встроенной концепции query. Однако, можно использовать query параметры совместно с Vue Router для управления состоянием.
Например, можно синхронизировать состояние Vuex с query параметрами:
// store.js
state: {
searchQuery: ''
},
mutations: {
SET_SEARCH_QUERY(state, query) {
state.searchQuery = query
}
}
// Компонент
watch: {
'$route.query.q'(newVal) {
this.$store.commit('SET_SEARCH_QUERY', newVal)
}
}
Также существуют библиотеки типа vuex-router-sync для синхронизации Vuex и Vue Router. Query параметры часто используются для сохранения состояния фильтров, поиска или пагинации.
Ответ 18+ 🔞
Слушай, а вот этот твой query во Vuex — это ж классика, блядь! Как будто ты пришёл в магазин за хлебом, а тебе начинают про квантовую физику рассказывать. Vuex сам по себе нихуя не знает про query, это же не его епархия, понимаешь?
Но народ, сука, хитрожопый — прикручивает эту хуйню через Vue Router, чтобы URL в браузере не просто так висел, а работал, как надо. Вот смотри, как это обычно выходит:
// store.js
state: {
searchQuery: ''
},
mutations: {
SET_SEARCH_QUERY(state, query) {
state.searchQuery = query
}
}
// Компонент
watch: {
'$route.query.q'(newVal) {
this.$store.commit('SET_SEARCH_QUERY', newVal)
}
}
Видишь? Следим за query параметром, как кот за сосиской, и как только что-то меняется — тут же пихаем это в хранилище. А ещё есть, блядь, целые библиотеки вроде vuex-router-sync, которые за тебя эту синхронизацию делают, чтобы руки не отпадали от писанины.
Используют это, обычно, для всяких фильтров, поиска или пагинации — чтобы ссылку скопировал, отправил другу, а у него там всё так же открылось, а не хуйня какая-то. Удобно, ёпта!