Тема: Vue' thread 1
Показать сообщение отдельно
  #54 (permalink)  
Старый 07.10.2016, 20:34
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Да я только разбираюсь во всем этом, но vuex юзаю. Но только для тех событий, которые влияют на приложение.

Вот action удаления статьи (пишу простенький блог).

async removeArticle({ commit }, id) {
    commit(REMOVE_ARTICLE_REQUEST);

    try {
      await axios.delete(`/api/articles/${id}`);
      commit(REMOVE_ARTICLE_SUCCESS, id);
    } catch (e) {
      commit(REMOVE_ARTICLE_FAILURE, e.response.data.message);
    }
  }


Но, при нажатии на кнопку выводиться кастомный confirm (их может быть несколько), мне кажется, что данный confirm не должен влиять на приложение. Ну, а смысл "приложению" знать о том, что запущен какой-то диалог, поэтому это состояние локальное.

Я смотрю в сторону событий, но, какой-то слишком запутанный получается "банальный диалог", цель которого запустить callback и скрыть себя.

export default {
  props: {
    onConfirm: Function,
    onCancel: Function,
  },
  data: () => ({ active: false }),
  methods: {
    open() {
      this.active = true;
    },
    close() {
      this.active = false;
    },
    confirmHandler() {
      this.close();

      if (this.onConfirm) {
        this.onConfirm();
      }
    },
    cancelHandler() {
      this.close();

      if (this.onCancel) {
        this.onCancel();
      }
    },
  },
};


Надеюсь после просмотра этого кода, никому плохо не станет

Последний раз редактировалось Lemme, 07.10.2016 в 20:40.
Ответить с цитированием