Ответ
В Vuex запросы к данным хранилища выполняются через геттеры (getters). Это вычисляемые свойства хранилища, которые позволяют получать и обрабатывать данные без их изменения.
Геттеры:
- Кэшируются, как computed-свойства
- Принимают
state
и другие геттеры как аргументы - Могут возвращать динамические данные через функцию
Пример:
const store = new Vuex.Store({
state: { todos: [{ id: 1, text: 'Learn Vuex', done: true }] },
getters: {
doneTodos: state => state.todos.filter(todo => todo.done),
getTodoById: state => id => state.todos.find(todo => todo.id === id)
}
});
// В компоненте:
computed: {
doneTodos() { return this.$store.getters.doneTodos; },
todo() { return this.$store.getters.getTodoById(1); }
}
Для сложных запросов можно использовать mapGetters
из vuex.