lazy_den
@lazy_den
Студент, Yii разработчик

Vuex как правильно получать данные через REST API?

Добрый день, такой вопросик, гуглил ничего толкового не нашел.
Есть
Список элементов
[ {id: 12, name: "12"}, {id: 43, name: "43"}]
Весь список я в действие получаю через axios и вызываю мутацию которая устанавливает состояние lists.
const actions = {
    getList({commit}){
        let list = api.getList();
        commit('setList', list);
    }
}

const mutations = {
    setList(state, list){
        state.list = list;
    }
}

И после в компоненте я вызываю
created () {
    	this.$store.dispatch('getList');
},
computed: {
		list(){
			return this.$store.state.list;
		}
	},

Так у меня сохранилось в состоянии список элементов, и я могу менять их и изменять.

Теперь у меня есть другой компонент просмотр item'a из list.
По хорошему нужно делать дополнительный запрос getItem(id)
Я во vuex'e в геттере указал запрос getItem(id), чтобы не перебирать массив на клиенте.
const getters = {
 	getItemById: state => id => {
    	return api.getItem(id);
  	}
 }

1.Правильный ли подход?
2.Сохранилось ли состояние, если я буду изменять item? При изменение item'a состояние list не изменится как я понимаю, то есть в action'e придется изменять тоже состояние? Или просто при изменение сделать запрос на обновление списка list?
  • Вопрос задан
  • 825 просмотров
Пригласить эксперта
Ответы на вопрос 1
zoroda
@zoroda
Необычный Fullstack
1. В таком подходе не вижу ничего некорректного.
2. Менять item лучше через мутацию/action. Используйте Vue.set, иначе Vue не отследит измение родительского list.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы