Size: a a a

Vue.js Russian Developers Community

2020 December 21

A

Andrew P. in Vue.js Russian Developers Community
Your friend
Ребят, всем привет. Пытаюсь нагуглить "как создать модальное окно в Vue" - натыкаюсь либо на какие то написанные апишки для создания, либо на какие то супер сложные примеры. Во Vue с этим проблема?
Заюзай bootstrap-vue)
источник

DS

Dmytro Svyrydenko in Vue.js Russian Developers Community
Your friend
Ребят, всем привет. Пытаюсь нагуглить "как создать модальное окно в Vue" - натыкаюсь либо на какие то написанные апишки для создания, либо на какие то супер сложные примеры. Во Vue с этим проблема?
Создаешь компоненту модалки (рутМодалка), которая внутри себя уже управляет какую модалку показывать и как это сделать.
Компоненту рутМодалка через эвент-бас или  стору прокидываешь инфу о том, какую модалку нужно открыть + opts. opts потом прокидываешь в выбранную модалку через v-bind=«opts» и это будут пропсы твоей модалки
источник

DS

Dmytro Svyrydenko in Vue.js Russian Developers Community
Dmytro Svyrydenko
Создаешь компоненту модалки (рутМодалка), которая внутри себя уже управляет какую модалку показывать и как это сделать.
Компоненту рутМодалка через эвент-бас или  стору прокидываешь инфу о том, какую модалку нужно открыть + opts. opts потом прокидываешь в выбранную модалку через v-bind=«opts» и это будут пропсы твоей модалки
Ну и рутМодалку естестенно кладешь в App.vue
источник

Y

Your friend in Vue.js Russian Developers Community
Andrew P.
Заюзай bootstrap-vue)
Спасибо большое! Сейчас гляну
источник

Y

Your friend in Vue.js Russian Developers Community
Dmytro Svyrydenko
Создаешь компоненту модалки (рутМодалка), которая внутри себя уже управляет какую модалку показывать и как это сделать.
Компоненту рутМодалка через эвент-бас или  стору прокидываешь инфу о том, какую модалку нужно открыть + opts. opts потом прокидываешь в выбранную модалку через v-bind=«opts» и это будут пропсы твоей модалки
А если у меня несколько разных модалок?
источник

Y

Your friend in Vue.js Russian Developers Community
мне придется много компонентов модалок создавать?
источник

DS

Dmytro Svyrydenko in Vue.js Russian Developers Community
Your friend
мне придется много компонентов модалок создавать?
Как хочешь
Можешь создать один компонент и внутри кучу if-ов добавить
А можешь несколько компонентов создать (это лучший вариант)
источник

DS

Dmytro Svyrydenko in Vue.js Russian Developers Community
Вот то, как у меня на одном из проектов
источник

DS

Dmytro Svyrydenko in Vue.js Russian Developers Community
В этом примере правда нету реализации нескольких открытых модалок в одно время, но это супер просто реализовать (просто через v-for рендерить компоненты)
источник

Y

Your friend in Vue.js Russian Developers Community
Dmytro Svyrydenko
В этом примере правда нету реализации нескольких открытых модалок в одно время, но это супер просто реализовать (просто через v-for рендерить компоненты)
понял, спасибо большое за столь развернутый ответ!
источник

VD

Vitaliy Demchuk in Vue.js Russian Developers Community
Your friend
А если у меня несколько разных модалок?
лучше использовать слоты под это дело
источник

VD

Vitaliy Demchuk in Vue.js Russian Developers Community
Vitaliy Demchuk
лучше использовать слоты под это дело
базовый пример модалок с использованием слотов.
источник

DS

Dmytro Svyrydenko in Vue.js Russian Developers Community
Vitaliy Demchuk
лучше использовать слоты под это дело
Ну конкретно в этом примере мы видим модалку одного типа с разным контентом :) Все же максимальной кастомизации так не добиться
Хотя хз, я слоты даже не пробовал юзать, может это и удобнее будет
источник

VD

Vitaliy Demchuk in Vue.js Russian Developers Community
Dmytro Svyrydenko
Ну конкретно в этом примере мы видим модалку одного типа с разным контентом :) Все же максимальной кастомизации так не добиться
Хотя хз, я слоты даже не пробовал юзать, может это и удобнее будет
сам компонент легковесный, не перегружен лишними вложенными компонентами. да и к тому же контент можно делать в виде набора компонентов, применяемых по назначению (в слотах)
источник

DS

Dmytro Svyrydenko in Vue.js Russian Developers Community
Vitaliy Demchuk
сам компонент легковесный, не перегружен лишними вложенными компонентами. да и к тому же контент можно делать в виде набора компонентов, применяемых по назначению (в слотах)
Ну в моем примере как бы нету вложенных компонентов :) По крайне мере ты о них не знаешь
Да и если хочешь создавать реюзабельные модалки со слотами, то тоже нужно создавать вложенность, просто на другом уровне
Шило на мыло есчесн
Вот только слоты в один момент могут перерости до чего-то дикого и ужасного, если мы говорим не о confirmation модалках с тайтлом+дескрипшеном+двумя экшнами (close и submit)
источник

VD

Vitaliy Demchuk in Vue.js Russian Developers Community
Dmytro Svyrydenko
Ну в моем примере как бы нету вложенных компонентов :) По крайне мере ты о них не знаешь
Да и если хочешь создавать реюзабельные модалки со слотами, то тоже нужно создавать вложенность, просто на другом уровне
Шило на мыло есчесн
Вот только слоты в один момент могут перерости до чего-то дикого и ужасного, если мы говорим не о confirmation модалках с тайтлом+дескрипшеном+двумя экшнами (close и submit)
все зависит от задачи, конечно. каждый подход имеет право на жизнь ;)
источник

DS

Dmytro Svyrydenko in Vue.js Russian Developers Community
Vitaliy Demchuk
все зависит от задачи, конечно. каждый подход имеет право на жизнь ;)
Согласен, я обсолютно о том же :)
Человек просто попросил описание как это сделать, я дал то, что юзаю сам годами
источник

DS

Dmytro Svyrydenko in Vue.js Russian Developers Community
Dmytro Svyrydenko
Подскажите пжлст
Вот есть у меня к примеру экшн как на скриншоте. В catch я проверяю что если запрос не прошел с такой-то ошибкой, то нужно сделать логаут
Вопрос: как мне не делать эту проверку в каждом экшне? Как лучше всего распространить это на все экшны?
Пингану еще разок -_-
источник

DL

Dark Light in Vue.js Russian Developers Community
Кто нибудь знаком со стилем программирования от Максима Деменева? Я слышал это революционный метод
источник

DL

Dark Light in Vue.js Russian Developers Community
Он вроде как русский
источник