@tryToFrontEnd

Как правильно вызывать методы для запросов к API?

Есть 1 вариант,
methods: {
  ...mapActions('module name', ['getData'])
},
mounted() {
  this.getData();
},

actions: {
  async getData({ commit }) {
    try {
      const response = await axios.get(url);
      commit('mutation name', response.data);
    } catch (e) {
      console.error(e);
    }
  },
},


и 2 второй вариант, если мне в самом компоненте получить результат запроса

methods: {
  ...mapActions('module name', ['getData'])
},
mounted() {
  this.getData().then((res) => {
    if(res.status !== 200) {
      console.log('Error')
    }
  });
},

actions: {
  async getData({ commit }) {
    try {
      const response = await axios.get(url);
      commit('mutation name', response.data);
      return response;
    } catch (e) {
      console.error(e);
      return null;
    }
  },
},


Правильно ли так писать?
И второй вопрос, часто вижу, когда вместо try/catch используют
axios.get(url)
  .then()
  .catch(e)
  .finally()

async getData({ commit }) {
    return await axios.get(url).then((res) => {
      commit('mutation name', res.data)
    }).catch(e => console.error(e));
    }
  },


Какой вариант предпочтительнее?
  • Вопрос задан
  • 245 просмотров
Пригласить эксперта
Ответы на вопрос 1
wapster92
@wapster92
1. Доку не хотим читать? Каким образом ты обратишься из mounted к функции из стора?
https://vuex.vuejs.org/guide/actions.html#dispatch...

2. Без разницы
Ответ написан
Ваш ответ на вопрос

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

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