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

  Рет қаралды 23,561

JavaScript.Ninja

JavaScript.Ninja

Күн бұрын

Пікірлер: 84
@maksymgapachilo9507
@maksymgapachilo9507 3 жыл бұрын
Читал про refs, но плохо читал, и не знал что можно через refs, у родителя вызивать метод ребенка.Искал неделю), прям топ видео))
@SuperRoqsta
@SuperRoqsta 3 жыл бұрын
Я дико извиняюсь! А когда продолжение?
@ablbaltabekov9083
@ablbaltabekov9083 3 жыл бұрын
Наконец-то вышла тема про флажки и попапы. У нас все делают через флажки и создают их ну очень много. Сам я реализовывал через добавление в класс active. Ну не мог что то лучше придумать. Спасибо что затронули эту тему
@MrAkhmat
@MrAkhmat 2 жыл бұрын
Спасибо Илья. Позволю себе оценить ваше изложение знаний. Это по факту очень эффективный подход. Думаю вы сами дошли до этого, конечно пропустив через себя много теории по обучению и прочему. У вас от природы есть предрасположенность к обучаемости и обучению. Вы погружаетесь в предметную область доходя до самой сути, становитесь ее "мастером". Больше вдохновляет не сам вью (который, видно, делался с душой, очень удобный инструмент и маст хев для современного веб программиста), а сама подача материала. Боюсь, после ваших видеокурсов, планка требований к излагающему видеокурс будет высокой. Посмотрел видеокурсов некоторое количество, но такой подачи материала нет ни у кого. Жаль что наткнулся на вас поздно, ожидал что будет очередной видеокурс. но он не очередной.
@gerasim_vol
@gerasim_vol 3 жыл бұрын
дякую за відео. з нетерпінням чекаю на нові випуски.
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
Сегодня или завтра.
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
Сегодня или завтра наступает! С днём рождения меня 🎂
@DimaNaks
@DimaNaks 3 жыл бұрын
@@JavaScriptNinja с днем рождения, Илья!
@gleb_04
@gleb_04 3 жыл бұрын
когда продолжение?
@PavelSmirnov-u5v
@PavelSmirnov-u5v 3 жыл бұрын
Спасибо, Илья!
@AlexKozack
@AlexKozack 3 жыл бұрын
Для доступа к методам дочернего компонента сейчас ведётся работа над специальными функциями `expose` и `defineExpose` для Composition API и `` соответственно. Скорее всего их уже можно использовать. Так что не так с этим всё страшно и костыльно =)
@alexanonymous5823
@alexanonymous5823 3 жыл бұрын
спасибо большое за видео, очень интересная тема рефы, нужно будет с ними разобраться, пока что немного сбит с толку с этими попапами, но разберусь=)) спасибо еще раз=))
@ПавлоТимощук-ш8й
@ПавлоТимощук-ш8й 3 жыл бұрын
Довольно длительный период пытался найти оптимальный вариант реализации попапов. Было много прочитано статьей на эту тему. В одной из них нашел вариант с refs, который Вы показали. Моя реализация заключается в том, что я сделал компонент-обвертку. В этом компоненте у меня вся логика открытия и закрытия попапа и каркас, в который вкладываю другие компоненты попапов. В каждом из них лежит свой html и своя логика. Эти попапы открываю через переменную с их названием. При открытии передаю название нужного попапа. При реализации этого подхода столкнулся с таким моментом, что refs работают только в одном компоненте и не всплывают до app.js. Если хочешь обратиться к компоненту, то он должен быть, так сказать, на виду)
@neyasbltb
@neyasbltb 3 жыл бұрын
Даже не представляю, как рефы могли бы "всплывать")
@ПавлоТимощук-ш8й
@ПавлоТимощук-ш8й 3 жыл бұрын
@@neyasbltb Согласен. Это просто мои наблюдения в процессе понимания Vue.
@xfirab
@xfirab 2 жыл бұрын
Спасибо классный урок получился
@RuslanDasaev-f7f
@RuslanDasaev-f7f 3 жыл бұрын
Использую модалку от vuetify, и там она закрывается автоматически при нажатии на backdrop. Допустимо ли не резолвить промис, при нажатии на backdrop?
@xeleos
@xeleos 3 жыл бұрын
Тоже глянул после курса Минина )) жду продолжение, очень интересно получается!
@Antonio-fm1sq
@Antonio-fm1sq 3 жыл бұрын
Спасибо!
@lastchancehider
@lastchancehider 3 жыл бұрын
спасибо вам!
@zenkovr
@zenkovr 3 жыл бұрын
А почему не пойти с этой идеей дальше и не убрать Popup из разметки? Модальный компонент можно создавать внутри "сервиса" и монтировать его куда угодно - например к .
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
Терпение, на курсе ещё не рассказали о телепорте и о provide/inject Но сразу поясню - если вы уберете его из разметки вы лишитесь возможности гибко настраивать попап
@jackdrengr5069
@jackdrengr5069 3 жыл бұрын
Мы так сделали у себя на проекте. Минусы: нельзя гибко из родителя попап, а самое главное - Vue ооочень не любит, когда вы руками что-то монтируете в DOM. Так например изначально подобные попапы были не видны во VueDevtools.
@DimaNaks
@DimaNaks 3 жыл бұрын
Я пока только на середине курса и сюда зашел просто чтобы спросить - подскажите пожалуйста, а когда будут новые видео? Уж очень интересный курс получился!
@onlytryhard80
@onlytryhard80 3 жыл бұрын
Ожидайте
@sergeyharchenko5116
@sergeyharchenko5116 3 жыл бұрын
Отличное видео, смотреть как пишет код опытный программист - нереальный кайф
@silveringreviews
@silveringreviews 3 жыл бұрын
нереальная боль
@timkhusainov7407
@timkhusainov7407 3 жыл бұрын
Очень годная библиотека, до этого юзал vue-modal но оно не очень нравилось тем что для создания простого окна надо много действий делать, тут все проще
@БорисСизов-д5ь
@БорисСизов-д5ь 3 жыл бұрын
Большое спасибо за курсы! У меня появился вопрос, помогите пожалуйста: У меня есть элемент input (TheInput), это мой кастомный ввод. Я разделил criptonomicon на компоненты и одним из компонентов выделил фильтрацию с пагинацией, причем так как у меня нет стора переменная filter хранится в App.vue. Она передается сначала в компонент фильтрации, а из него в компонент TheInput и при изменении input выдаются ошибки и не меняется переменная filter. Почему?(((
@РМахиев
@РМахиев 3 жыл бұрын
Здравствуйте Илья. Прежде всего благодарю Вас за курс. Будет ли его продолжение или на этом видео он закончен?
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
Не закончен, будет
@rasulberov8093
@rasulberov8093 3 жыл бұрын
@@JavaScriptNinja Хорошая новость. Спасибо за ответ
@vitaliy.artyukh
@vitaliy.artyukh 3 жыл бұрын
фокус на инпуте, казалось бы что может быть проще. но фокус инпута в модальном окне, которое еще имеет анимацию при открытии не такая и тривиальная задача. если в директиве в блоке inserted обратится к элементу и выставить фокус то это не работает, вероятно когда анимация еще не закончилась то компонент еще не создался или еще что-то. Evan советовал так: bind(el, binding, context) { context.componentInstance.$once('hook:attached', () => { input.focus(); }); }, но это также не работает. единственный рабочий способ это setTimeout. возможно я еще чего-то не знаю.
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
Использовать директивы - очень плохая идея для управления подобными вещами
@ravetherover
@ravetherover 3 жыл бұрын
nextTick может быть как-то полезен в этой ситуации?
@vdvchannel7765
@vdvchannel7765 2 жыл бұрын
Очень и очень поверхностное рассмотрение. модалка это исскуство
@vovchisko-dev
@vovchisko-dev 3 жыл бұрын
Забыл Reject при внезапном уничтожении родителя попапа, например в результате работы роутера.
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
Да, хорошее замечание. Сценарий очень редкий в данном кейсе, но стоит внимания
@silveringreviews
@silveringreviews 3 жыл бұрын
Property 'open' does not exist on type 'unknown'
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
Что поделать, слабость тайпскрипта и вью )
@АлександрЛобков-н7о
@АлександрЛобков-н7о 3 жыл бұрын
Сделал у себя на проекте реализацию диалоговых окон на промисах еще 2.5 года назад. И все прекрасно работает. Только я не использую ref.
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
Без рефов не получится подставлять произвольный html в слоты, а это большой минус по гибкости
@АлександрЛобков-н7о
@АлександрЛобков-н7о 3 жыл бұрын
@@JavaScriptNinja А зачем через рефы подставлять? Слоты работают как и обычные слоты во вью. Я использоаал без рефа чтобы вызвать функцию открытия диалога.
@АлександрЛобков-н7о
@АлександрЛобков-н7о 3 жыл бұрын
Кстати могут быть кейсы когда надо вызвать диалог сразу же монтирования родительского компонента и при обращении рефа еще может не существовать. Например подгрузка диалога идет через асинхронный чанк.
@sergiishilingov5609
@sergiishilingov5609 3 жыл бұрын
Интересная реализация с промисом. Для сравнения - заэмитить confirm, обработать в родителе. После в родителе через ref закрыть попап. Какие есть преимущества у варианта с промисом?
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
"в родителе через ref" закрыть попап - это плохая идея
@sergiishilingov5609
@sergiishilingov5609 3 жыл бұрын
@@JavaScriptNinja Почему?
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
@@sergiishilingov5609 потому что тогда мы приходим к тому же варианту с дроблением логики, с которого начали. Не стоит их смешивать
@ИзиБризи-с1х
@ИзиБризи-с1х 3 жыл бұрын
Я надеюсь это не последнее видео в данном курсе?
@MrAlexander446
@MrAlexander446 3 жыл бұрын
а почему не вынести константу из $options просто в константу выше перед export default у компонента (CONFIRMATION_TEXT)? мы же не используем константу в html
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
Используем в плейсхолдере
@MrAlexander446
@MrAlexander446 3 жыл бұрын
@@JavaScriptNinja оу, плохо следил, спасибо))
@deanArtDev
@deanArtDev 3 жыл бұрын
Илья, а для патрионов продолжение уже есть?
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
Нет, этот курс к патреону никакого отношения не имеет, я не пытаюсь вам что-то продать :)
@deanArtDev
@deanArtDev 3 жыл бұрын
@@JavaScriptNinja не в этом дело, если бы можно было заплатить и продолюить курс было бы даже лучьше =) Все на много прозаичнее, курс хороший и хочется продолжения =)
@deanArtDev
@deanArtDev 3 жыл бұрын
Инетесно, хорошая ли идея когда у тебя модалка из 3 и более шагов передовать в resolve("nameStap") и уже опираться на это значение для понимание на каком ты шаге и рисовать соответвущий компонент?
@alexs7931
@alexs7931 3 жыл бұрын
В итоге нужно будет делать что-то вроде {stepName:"1", data{ field1: 123}} В видео упрощённый вариант для быстрого понимания.
@neyasbltb
@neyasbltb 3 жыл бұрын
Нет, потому что resolve одноразовый. Максимум, туда можно передавать имя шага, на котором решили закрыть модалку
@greenvirsdev7820
@greenvirsdev7820 3 жыл бұрын
Можно избавиться от ref, просто добавив slot scoped с именем например activator. Передать этому слоту функцию open и в родителе ее вызывать.
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
Только если активация происходит непосредственно из шаблона
@greenvirsdev7820
@greenvirsdev7820 3 жыл бұрын
@@JavaScriptNinja да, но это один из подходов, что ты не злоупотреблять ref. И это так же оставит возможность управлять popup через ref.
@alimslimmer1751
@alimslimmer1751 3 жыл бұрын
Охх, до этой главы я наверно через полгода только доберусь
@silveringreviews
@silveringreviews 3 жыл бұрын
16:30 какие крутилки? Что происходит? Убейте меня
@Peter-vz4tb
@Peter-vz4tb 3 жыл бұрын
Промис который каким-то образом сохраняется в методе, а потом неожиданно вызывается - ни-на не понятно.
@samesadface
@samesadface 3 жыл бұрын
Не понимаю почему люди не используют dialog-polyfill
@JavaScriptNinja
@JavaScriptNinja 3 жыл бұрын
Потому что у нее тоже свои проблемы. И как применение тега dialog решит задачу построения flow с ожиданием попапа
@samesadface
@samesadface 3 жыл бұрын
@@JavaScriptNinja Написал коммент в начале видео. И там была проблема, которая легко решается его использованием. Предотвращение перехода фокуса по tab за пределы модального окна. А какие у него есть проблемы?
@Nikolaevichful
@Nikolaevichful Жыл бұрын
Аж прийшло просвітлення!! Цікаво чи в реакті можливо таке реалізувати, а то по флажку відкривати модалку, після цього відео, не найс.
@Denchenity
@Denchenity 2 жыл бұрын
Читер))
#30 v-model и  семантика - Vue.js: нюансы
14:51
JavaScript.Ninja
Рет қаралды 17 М.
#28 Попап и scoped slots - Vue.js: практика
21:47
JavaScript.Ninja
Рет қаралды 18 М.
Гениальное изобретение из обычного стаканчика!
00:31
Лютая физика | Олимпиадная физика
Рет қаралды 4,8 МЛН
黑天使被操控了#short #angel #clown
00:40
Super Beauty team
Рет қаралды 61 МЛН
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН
#27 Знакомство со слотами - Vue.js: практика
30:14
AI Is Making You An Illiterate Programmer
27:22
ThePrimeTime
Рет қаралды 268 М.
#35 Options vs Composition, часть 1 - Vue.js: концепции
17:38
#1 Зачем нужен Vue.js? - Vue.js: концепции
18:27
JavaScript.Ninja
Рет қаралды 206 М.
Все что нужно знать о REACT для НОВИЧКА за 15 минут | Изучаем Реакт
15:12
Frontend Fundamentals | Александр Караджиков
Рет қаралды 40 М.
Гениальное изобретение из обычного стаканчика!
00:31
Лютая физика | Олимпиадная физика
Рет қаралды 4,8 МЛН