Что является query во Vuex

Ответ

В 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, которые за тебя эту синхронизацию делают, чтобы руки не отпадали от писанины.

Используют это, обычно, для всяких фильтров, поиска или пагинации — чтобы ссылку скопировал, отправил другу, а у него там всё так же открылось, а не хуйня какая-то. Удобно, ёпта!