Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #51 (permalink)  
Старый 07.10.2016, 18:31
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Да, по сути это не дочерние компоненты, а компоненты-свойства, т.е. у нас композиция.
__________________
kobezzza
code monkey
Ответить с цитированием
  #52 (permalink)  
Старый 07.10.2016, 18:49
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Это радует, ибо предложенный вариант модального окна в доке, вообще не впечатляет.

Когда одно "модальное окно", тогда еще ладно, но если их несколько, то под каждый объявлять свойство не очень..
Ответить с цитированием
  #53 (permalink)  
Старый 07.10.2016, 20:02
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Если объектов много, то лучше юзать события и Vuex.
__________________
kobezzza
code monkey
Ответить с цитированием
  #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.
Ответить с цитированием
  #55 (permalink)  
Старый 07.10.2016, 20:37
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Тогда в принципе, всё верно.
__________________
kobezzza
code monkey
Ответить с цитированием
  #56 (permalink)  
Старый 07.10.2016, 20:59
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Может у кого-то в закладках пылятся годный материал, никто не хочет поделиться?
Ответить с цитированием
  #57 (permalink)  
Старый 07.10.2016, 22:35
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Lemme
ибо предложенный вариант модального окна в доке, вообще не впечатляет
Не впечатляет тем, что слишком простой, а ты намеренно хочешь усложнить?)))
Лучше вместо той колбасы, которую ты колбасишь, внимательнее посмотри на пример. То, что ты написал абсолютно не нужно.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #58 (permalink)  
Старый 07.10.2016, 22:54
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

nerv_, да вроде все видел, возможно я и усложняю, но хочется чистоты в компонентах.

мне бросилось в глаза свойство showModal, которое управляет компонентом modal и не является его частью, хотелось бы его положить внутрь компонента modal. (хотя может это и глупо).

Попробую переварить эту лашпу, может все на самом деле проше.
Ответить с цитированием
  #59 (permalink)  
Старый 08.10.2016, 00:04
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

nerv_,
Получилось вот такая хрень. Все круто, но не слишком ли много логики выносится из компонента??
И печалька получится, если использовать два диалога. Либо я что-то не понимаю, либо без callback тут не обойтись.

https://jsfiddle.net/s63c8djs/

Последний раз редактировалось Lemme, 08.10.2016 в 00:07.
Ответить с цитированием
  #60 (permalink)  
Старый 08.10.2016, 18:03
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Lemme
Все круто, но не слишком ли много логики выносится из компонента??
Ты про один флаг? Даже не знаю что тебе на это ответить... И как ты собрался управлять видимостью окна без этого флага, тоже не знаю...
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
NW (node-webkit) thread nerv_ Node.JS 9 12.03.2015 13:59