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

แชร์
ฝัง
  • เผยแพร่เมื่อ 14 พ.ย. 2024

ความคิดเห็น • 37

  • @mrbasfed1948
    @mrbasfed1948 4 ปีที่แล้ว +1

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

  • @КлимСомов-х6с
    @КлимСомов-х6с 2 ปีที่แล้ว

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

  • @GTAlexSEO
    @GTAlexSEO 3 ปีที่แล้ว

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

  • @kupiros
    @kupiros 3 ปีที่แล้ว +3

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

    • @kupiros
      @kupiros 3 ปีที่แล้ว +2

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

  • @ВладимирХроменок
    @ВладимирХроменок 3 ปีที่แล้ว

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

  • @nikanorra
    @nikanorra 3 ปีที่แล้ว

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

  • @ГаляДмитришин-б5ч
    @ГаляДмитришин-б5ч 2 ปีที่แล้ว +2

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

  • @agafonoff93
    @agafonoff93 2 ปีที่แล้ว +1

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

  • @Kempriol
    @Kempriol 4 ปีที่แล้ว +1

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

    • @gofrontend2220
      @gofrontend2220  4 ปีที่แล้ว +1

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

  • @ДмитрийМеньшиков-ю5с
    @ДмитрийМеньшиков-ю5с 2 ปีที่แล้ว

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

  • @alexandermironenko2941
    @alexandermironenko2941 4 ปีที่แล้ว +1

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

  • @silveringreviews
    @silveringreviews 2 ปีที่แล้ว

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

  • @annashalbuzova8124
    @annashalbuzova8124 3 ปีที่แล้ว

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

  • @gulminezduisen3516
    @gulminezduisen3516 2 ปีที่แล้ว

    Super

  • @tatsianaa4408
    @tatsianaa4408 3 ปีที่แล้ว

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

  • @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;
      }
      }

    • @РусланДенисламов-ш8ш
      @РусланДенисламов-ш8ш 2 ปีที่แล้ว

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

  • @stevenson5402
    @stevenson5402 3 ปีที่แล้ว

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

  • @d-mbappe
    @d-mbappe 3 ปีที่แล้ว +2

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

  • @gofrontend2220
    @gofrontend2220  ปีที่แล้ว

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

  • @konstantinkhomenko6216
    @konstantinkhomenko6216 4 ปีที่แล้ว

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

    • @gofrontend2220
      @gofrontend2220  4 ปีที่แล้ว

      Konstantin Khomenko material oceanic

  • @adventure229
    @adventure229 4 ปีที่แล้ว +1

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

    • @annashalbuzova8124
      @annashalbuzova8124 3 ปีที่แล้ว +1

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

    • @ПавелФролов-ю2м
      @ПавелФролов-ю2м 3 ปีที่แล้ว +2

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

  • @kz4fun
    @kz4fun 4 ปีที่แล้ว

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

    • @Abbas.Amaev.
      @Abbas.Amaev. 4 ปีที่แล้ว

      Без проблем

  • @TheBorninmotion
    @TheBorninmotion 3 ปีที่แล้ว

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

  • @soulwind7577
    @soulwind7577 4 ปีที่แล้ว

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

    • @gofrontend2220
      @gofrontend2220  4 ปีที่แล้ว +1

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

    • @TheBorninmotion
      @TheBorninmotion 3 ปีที่แล้ว

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