[ВАЖНО - Читай описание] SELECT. Создание кастомного стилизуемого компонента на Vue.js

Поделиться
HTML-код
  • Опубликовано: 12 янв 2020
  • --------------------------------------------------------------------------------------------------------------------------------------------------------
    ВАЖНО - Видео на этом канале 3х летней давности и большинство уже НЕАКТУАЛЬНЫЕ в силу изменения синтаксиса, методов и подходов во Vue.js версии 3. Все видео были записаны на Vue.js версии 2. Много чего уже просто НЕ БУДЕТ РАБОТАТЬ или выдаст ошибки.
    Новый канал на актуальном стеке Vue.js v3, Pinia, Vue router@next, Ionic (мобильные приложения), FireBase (база данных, аутентификация и тд) - / @intothecoding
    НО! Новый канал ведется на АНГЛИЙСКОМ ЯЗЫКЕ - так что у вас есть уникальная возможность научиться кодить и подтянуть язык - так как Английский нужен всегда!
    Жду вас на новом канале!
    --------------------------------------------------------------------------------------------------------------------------------------------------------

Комментарии • 37

  • @GTAlexSEO
    @GTAlexSEO 2 года назад

    Реально бомба! Отличный урок! Подача супер - всё по теме, чётко и без соплей! Лайк и подписка однозначно! Все курсы пересмотрю ...

  • @mrbasfed1948
    @mrbasfed1948 4 года назад +1

    Спасибо! Полезный урок. Как раз надо было кастомный селект сделать, да и понять принцип как это работает. )

  • @user-vi6lt4tw6u
    @user-vi6lt4tw6u 3 года назад

    Бомба! То что надо было. И как раз про кастомный селект. И про emit было раньше не до конца понятно. Теперь , вроде как, все стало на свои места! Хороший урок, граммотная речь. Подписка и лайк!)

  • @user-js9pd7cv6g
    @user-js9pd7cv6g Год назад

    Спасибо! Очень годные уроки

  • @nikanorra
    @nikanorra 3 года назад

    супер! как же Вы мне помогли! спасибо!

  • @kupiros
    @kupiros 3 года назад +3

    1. При addEventListener можно не юзать bind, достаточно обычной передачи метода, контекст не теряется
    2. При removeEventListener надо указывать true в конце (параметр useCapture должен быть таким же как и при создании слушателя), иначе не удалится
    Косячнул под конец видоса, ты чего) но всё равно лайк)

    • @kupiros
      @kupiros 3 года назад +2

      а еще лучше не юзать true в лисенерах документа, а использовать везде @click.stop в самом селекте, тогда вообще не будет лишних срабатываний :)

  • @alexandermironenko2941
    @alexandermironenko2941 4 года назад +1

    Спасибо большое

  • @gofrontend2220
    @gofrontend2220  10 месяцев назад

    ! ВАЖНО - Читайте описание к видео ! 🔥🔥🔥👆👆👆

  • @gulminezduisen3516
    @gulminezduisen3516 2 года назад

    Super

  • @annashalbuzova8124
    @annashalbuzova8124 2 года назад

    Здравствуйте, подскажите какую версию vue вы используете в данном видео ? 2 || 3?

  • @agafonoff93
    @agafonoff93 Год назад +1

    HEELP! =) Почему когда добавляю обработчики Mounted и beforeDestroy они убирают селекты но не меняется title на выбранный селект?

  • @user-ce2ls2xd2j
    @user-ce2ls2xd2j 2 года назад +2

    А как два таких элемента на странице использовать? чтоб они раздельно выбирали данные?

  • @Kempriol
    @Kempriol 4 года назад +1

    Было бы круто, чтобы еще обернуть доступностью с клавиатуры подобный компонент + как он поведёт себя в мобиле, учитывать ли смещение по верхней границе экрана или еще что, вообще в мобиле дефолтный селект открывается в "модалке", что привычнее

    • @gofrontend2220
      @gofrontend2220  4 года назад +1

      Kempriol вообще по бест практису надо для мобильного разрешения сделать нативный селект. Просто создать тен select с опциями и показывать его на мобилке а стилизованный скрыватт

  • @user-kl6be1qp3g
    @user-kl6be1qp3g Год назад

    Подскажите, пожалуйста как заанимировать появление option?

  • @stevenson5402
    @stevenson5402 3 года назад

    Здравствуйте! Как можно подобный компонент воткнуть на уже готовый сайт?

  • @tatsianaa4408
    @tatsianaa4408 2 года назад

    А как быть в случае если дефолтное значение из пропса будет поступать?

  • @silveringreviews
    @silveringreviews 2 года назад

    а как перезаписать изначальное значение value в родительской data?

  • @kz4fun
    @kz4fun 4 года назад

    Можно веть сделать навигацию таким образом? И чтоб изначально допустим было выбрано 'главная' ?

  • @konstantinkhomenko6216
    @konstantinkhomenko6216 3 года назад

    Лайк однозначно! Как называется тема редактора?

  • @d-mbappe
    @d-mbappe 3 года назад +2

    ало, где ссылка на гит

  • @soulwind7577
    @soulwind7577 3 года назад

    А реально как то сделать через дерективу v-model ?? Что бы был прям реально как полностью кастомный select без лишних емитов

    • @gofrontend2220
      @gofrontend2220  3 года назад +1

      Да можно. Нужно из метода где выбирается опция создать эмит с названием 'input': this.$emit("input", value), где value это выбранная опция. В этом случае если эмитися событие с названием input, можно из родителя зацепиться за него v-model'ю

    • @TheBorninmotion
      @TheBorninmotion 3 года назад

      @@gofrontend2220 можно пример ?

  • @GeliosGarik
    @GeliosGarik 4 года назад +1

    всё здорово, спасибо!
    в конце только c добавлением _mounted_ не могу теперь свернуть список опций по клику _@click="areOptionsVisible = !areOptionsVisible"_ , меняется false сразу на true.
    и ещё, в вашем видео было сказано использовать *is* для boolean, тут уже в названиях стоит избегать тогда множественного числа)))

    • @mrbasfed1948
      @mrbasfed1948 4 года назад

      В названиях надо придерживаться правил языка, а не от балды буквы набирать. Всё там правильно. )

    • @tolebiGamingTime
      @tolebiGamingTime 3 года назад

      Да у меня тоже такой проблема

    • @tolebiGamingTime
      @tolebiGamingTime 3 года назад

      @@mrbasfed1948 ты не прав

    • @youtubestark873
      @youtubestark873 3 года назад +4

      да, автор не учел этот момент почему то. я поправил вызываемую функцию при клике на document, хз насколько правильно но работает
      hideSelect(e) {
      if (!document.querySelector(".title").contains(e.target)) {
      this.areOptionsVisible = false;
      }
      }

    • @user-cd1cv4lm7s
      @user-cd1cv4lm7s 2 года назад

      @@youtubestark873 Спасибо!) Тоже не мог понять почему элемент не сворачивается

  • @TheBorninmotion
    @TheBorninmotion 3 года назад

    а мультиселект ?

  • @adventure229
    @adventure229 3 года назад +1

    а для чего создали beforeDestroy не пойму

    • @annashalbuzova8124
      @annashalbuzova8124 2 года назад +1

      наверное, чтобы изменять значение hideSelect обратно(из true в false). Хотя мне тоже не до конца понятно зачем это, работает и без него

    • @user-uy8cz1db9o
      @user-uy8cz1db9o 2 года назад +2

      1) Зачем держать в памяти обработчик которые отвечает за компонент которого нету на странице
      2) При каждой новой отрисовке компонента, хук mount будет закидывать +1 оброботчик. Т.е. будет утечка памяти. beforeDestroy убирает слушатель и утечка не происходит.
      Итог: Для того, что бы убрать обработчик когда компонент не будет на странице и не было утечки памяти.