#29 Попап и промисы - Vue.js: практика

#29 Попап и промисы - Vue.js: практика

JavaScript.Ninja

3 года назад

23,000 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

@Nikolaevichful
@Nikolaevichful - 30.09.2023 21:27

Аж прийшло просвітлення!! Цікаво чи в реакті можливо таке реалізувати, а то по флажку відкривати модалку, після цього відео, не найс.

Ответить
@vdvchannel7765
@vdvchannel7765 - 27.01.2023 21:49

Очень и очень поверхностное рассмотрение. модалка это исскуство

Ответить
@xfirab
@xfirab - 02.01.2023 19:29

Спасибо классный урок получился

Ответить
@MrAkhmat
@MrAkhmat - 15.06.2022 07:55

Спасибо Илья. Позволю себе оценить ваше изложение знаний. Это по факту очень эффективный подход. Думаю вы сами дошли до этого, конечно пропустив через себя много теории по обучению и прочему. У вас от природы есть предрасположенность к обучаемости и обучению. Вы погружаетесь в предметную область доходя до самой сути, становитесь ее "мастером". Больше вдохновляет не сам вью (который, видно, делался с душой, очень удобный инструмент и маст хев для современного веб программиста), а сама подача материала. Боюсь, после ваших видеокурсов, планка требований к излагающему видеокурс будет высокой. Посмотрел видеокурсов некоторое количество, но такой подачи материала нет ни у кого. Жаль что наткнулся на вас поздно, ожидал что будет очередной видеокурс. но он не очередной.

Ответить
@user-xw9mx7jv3z
@user-xw9mx7jv3z - 03.06.2022 00:37

Читер))

Ответить
@silveringreviews
@silveringreviews - 09.02.2022 17:00

Property 'open' does not exist on type 'unknown'

Ответить
@sergeyharchenko5116
@sergeyharchenko5116 - 05.12.2021 21:47

Отличное видео, смотреть как пишет код опытный программист - нереальный кайф

Ответить
@user-qg8mw4jx7s
@user-qg8mw4jx7s - 13.09.2021 17:34

Использую модалку от vuetify, и там она закрывается автоматически при нажатии на backdrop. Допустимо ли не резолвить промис, при нажатии на backdrop?

Ответить
@timkhusainov7407
@timkhusainov7407 - 07.09.2021 09:27

Очень годная библиотека, до этого юзал vue-modal но оно не очень нравилось тем что для создания простого окна надо много действий делать, тут все проще

Ответить
@xeleos
@xeleos - 27.08.2021 00:22

Тоже глянул после курса Минина )) жду продолжение, очень интересно получается!

Ответить
@dravendominos273
@dravendominos273 - 15.08.2021 16:24

Какие курсы можете порекомендовать, для изучения параллельно этому? Как вам курсы Максимиллиана Шварцмюллера?

Ответить
@ShteinAndrew
@ShteinAndrew - 13.08.2021 08:23

Доброго дня! Спасибо за видео. В секцию видео вы поместили "currentPopupController: null," но в методах использовали "this.$options.popupController" - это же просто опечатка?

Ответить
@nazarfilippov2636
@nazarfilippov2636 - 07.08.2021 22:37

Огромное спасибо Вам за вклад в подростающее IT сообщество! Очень интересно смотреть каждый Ваш выпуск!💥

Ответить
@user-bb4mt7zw3l
@user-bb4mt7zw3l - 04.08.2021 19:19

Я надеюсь это не последнее видео в данном курсе?

Ответить
@user-yb6df9sg4p
@user-yb6df9sg4p - 04.08.2021 12:20

Здравствуйте Илья. Прежде всего благодарю Вас за курс. Будет ли его продолжение или на этом видео он закончен?

Ответить
@user-ci6pr6oy6q
@user-ci6pr6oy6q - 02.08.2021 15:53

Илья, а для патрионов продолжение уже есть?

Ответить
@dravendominos273
@dravendominos273 - 31.07.2021 18:30

Из-за жидкого фейла Минина просмотрел/прорешал весь вышедший курс и остался доволен, когда продолжение?

Ответить
@gleb_04
@gleb_04 - 30.07.2021 17:41

когда продолжение?

Ответить
@user-ie9od2lh2p
@user-ie9od2lh2p - 25.07.2021 20:51

Большое спасибо за курсы! У меня появился вопрос, помогите пожалуйста: У меня есть элемент input (TheInput), это мой кастомный ввод. Я разделил criptonomicon на компоненты и одним из компонентов выделил фильтрацию с пагинацией, причем так как у меня нет стора переменная filter хранится в App.vue. Она передается сначала в компонент фильтрации, а из него в компонент TheInput и при изменении input выдаются ошибки и не меняется переменная filter. Почему?(((

Ответить
@SuperRoqsta
@SuperRoqsta - 22.07.2021 17:40

Я дико извиняюсь! А когда продолжение?

Ответить
@alexanonymous5823
@alexanonymous5823 - 10.07.2021 19:19

спасибо большое за видео, очень интересная тема рефы, нужно будет с ними разобраться, пока что немного сбит с толку с этими попапами, но разберусь=)) спасибо еще раз=))

Ответить
@asurahan
@asurahan - 06.07.2021 11:34

вот. теперь мне придется переписать все модалки у себя. потому что так ну очень прям ништяк смотрица с точки зрения кода.

Ответить
@Peter-vz4tb
@Peter-vz4tb - 03.07.2021 18:28

Промис который каким-то образом сохраняется в методе, а потом неожиданно вызывается - ни-на не понятно.

Ответить
@AlexKozack
@AlexKozack - 03.07.2021 11:09

Для доступа к методам дочернего компонента сейчас ведётся работа над специальными функциями `expose` и `defineExpose` для Composition API и `<script setup>` соответственно. Скорее всего их уже можно использовать. Так что не так с этим всё страшно и костыльно =)

Ответить
@DimaNaks
@DimaNaks - 02.07.2021 14:01

Я пока только на середине курса и сюда зашел просто чтобы спросить - подскажите пожалуйста, а когда будут новые видео? Уж очень интересный курс получился!

Ответить
@greenvirsdev7820
@greenvirsdev7820 - 11.06.2021 10:10

Можно избавиться от ref, просто добавив slot scoped с именем например activator. Передать этому слоту функцию open и в родителе ее вызывать.

Ответить
@gerasim_vol
@gerasim_vol - 10.06.2021 16:51

дякую за відео. з нетерпінням чекаю на нові випуски.

Ответить
@pilyugin
@pilyugin - 02.06.2021 18:50

Пока только один раз в жизни использовал трюк с промисами... нужно было список свойств отправлять на бэк, чтобы он с ними провернул ресурсоемкие действия, сразу пачку пыха пререварить не успевала и сыпалась по таймауту... было принято решение на фронте запустить асинхронный цикл, т.е. отправляем одно свойство, ждем ответа, для надежности (стояла защита от ддоса) выдерживаем паузу в 1 секунду и отправляем следующее свойство...
Так вот, отправить fetch, дождаться ответа и перейти на слудующую итерацию было не трудно, но после итераций 20-25 сервак рубил концы... помозговав часик нашел выход, создавать при ответе сервера новый промис, а резолвить его через setTimeout, медленно но верно такой код способен переварить любое кол-во свойств)))

Ответить
@samesadface
@samesadface - 01.06.2021 22:32

Не понимаю почему люди не используют dialog-polyfill

Ответить
@Antonio-fm1sq
@Antonio-fm1sq - 01.06.2021 14:33

Спасибо!

Ответить
@VladimirIshenko
@VladimirIshenko - 31.05.2021 13:12

Забыл Reject при внезапном уничтожении родителя попапа, например в результате работы роутера.

Ответить
@MrAlexander446
@MrAlexander446 - 31.05.2021 12:25

а почему не вынести константу из $options просто в константу выше перед export default у компонента (CONFIRMATION_TEXT)? мы же не используем константу в html

Ответить
@user-xz8lf4se3l
@user-xz8lf4se3l - 31.05.2021 07:57

Спасибо, Илья!

Ответить
@vitaliy.artyukh
@vitaliy.artyukh - 30.05.2021 20:52

фокус на инпуте, казалось бы что может быть проще. но фокус инпута в модальном окне, которое еще имеет анимацию при открытии не такая и тривиальная задача.
если в директиве в блоке inserted обратится к элементу и выставить фокус то это не работает, вероятно когда анимация еще не закончилась то компонент еще не создался или еще что-то.
Evan советовал так:
bind(el, binding, context) {
context.componentInstance.$once('hook:attached', () => {
input.focus();
});
},

но это также не работает.
единственный рабочий способ это setTimeout.
возможно я еще чего-то не знаю.

Ответить
@maksymgapachilo9507
@maksymgapachilo9507 - 30.05.2021 14:26

Читал про refs, но плохо читал, и не знал что можно через refs, у родителя вызивать метод ребенка.Искал неделю), прям топ видео))

Ответить
@user-ct2te6zp6n
@user-ct2te6zp6n - 30.05.2021 11:39

Сделал у себя на проекте реализацию диалоговых окон на промисах еще 2.5 года назад. И все прекрасно работает. Только я не использую ref.

Ответить
@dygidin1606
@dygidin1606 - 30.05.2021 09:50

Привет, спасибо за полезный контент!
На Composition API не сложно вынести методы из компонента и можно также их вызывать используя ref без диких костылей.
Пример:
Код в дочернем компоненте:
...
setup() {
const show = () => {
console.log('show')
};
return { show }
},

Код в родительском:
...
<app-date-picker ref="datePicker" />
...
const datePicker = ref(null);

onMounted(() => {
datePicker.value.show();
});

return {
datePicker
}

Поправь пожалуйста если я ошибаюсь.

Ответить
@sergiishilingov5609
@sergiishilingov5609 - 30.05.2021 08:47

Интересная реализация с промисом. Для сравнения - заэмитить confirm, обработать в родителе. После в родителе через ref закрыть попап. Какие есть преимущества у варианта с промисом?

Ответить
@user-ci6pr6oy6q
@user-ci6pr6oy6q - 30.05.2021 07:42

Инетесно, хорошая ли идея когда у тебя модалка из 3 и более шагов передовать в resolve("nameStap") и уже опираться на это значение для понимание на каком ты шаге и рисовать соответвущий компонент?

Ответить
@ablbaltabekov9083
@ablbaltabekov9083 - 30.05.2021 02:51

Наконец-то вышла тема про флажки и попапы. У нас все делают через флажки и создают их ну очень много. Сам я реализовывал через добавление в класс active. Ну не мог что то лучше придумать. Спасибо что затронули эту тему

Ответить
@alimslimmer1751
@alimslimmer1751 - 30.05.2021 01:24

Охх, до этой главы я наверно через полгода только доберусь

Ответить
@lastchancehider
@lastchancehider - 30.05.2021 01:17

спасибо вам!

Ответить
@user-hk3zz3oi8b
@user-hk3zz3oi8b - 30.05.2021 00:37

Довольно длительный период пытался найти оптимальный вариант реализации попапов.
Было много прочитано статьей на эту тему. В одной из них нашел вариант с refs, который Вы показали. Моя реализация заключается в том, что я сделал компонент-обвертку. В этом компоненте у меня вся логика открытия и закрытия попапа и каркас, в который вкладываю другие компоненты попапов. В каждом из них лежит свой html и своя логика. Эти попапы открываю через переменную с их названием. При открытии передаю название нужного попапа.
При реализации этого подхода столкнулся с таким моментом, что refs работают только в одном компоненте и не всплывают до app.js. Если хочешь обратиться к компоненту, то он должен быть, так сказать, на виду)

Ответить
@zenkovr
@zenkovr - 30.05.2021 00:35

А почему не пойти с этой идеей дальше и не убрать Popup из разметки? Модальный компонент можно создавать внутри "сервиса" и монтировать его куда угодно - например к <body>.

Ответить