React Intersection Observer (scroll + lazy-load картинок)

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ธ.ค. 2022
  • Представьте, что вам нужно определить, что какой-то конкретный попал в область вашего экрана на 10% или 100%, после чего необходимо выполнить какое-то действие? Например, анимировать элемент.
    React Intersection Observer идеально справится с этой задачей!
    Нужно определить, что пользователь дошел до конечного скролла? Юзай Intersection Observer.
    Нужно сделать ленивую подгрузку картинок? Вперёд вместе с React Intersection Observer!
    Например, в Эльдорадо необходимо было динамически подгружать отдельные компоненты, когда на экране отобразился какой-нибудь элемент или отправлять отчет в аналитику о том, что пользователь увидел баннер и там мы юзали именно эту библиотеку.
    ⏰ Таймкоды:
    00:00:00 Введение
    00:50:00 Делаем неправильно с помощью scroll
    05:25:00 Что такое Intersection Observer
    10:25:00 Делаем правильно с помощью React Intersection Observer
    15:04:00 Делаем ленивую подгрузку картинок
    🔗 Следите за обновлениями и информацией в:
    - Telegram-канале: t.me/archakov_im
    - VK: archakov_im
    - Личном блоге: archakov.im
    - GitHub: github.com/Archakov06
    - Моё резюме: career.habr.com/archakovim
    #react #scroll #intersectionobserver #observer #js #javascript #junior #реакт #разработка

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

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

    Спасибо за труд, очень полезное видео
    React Intersection Observer / scroll / lazy-load / ленивая загрузка

  • @aleksandrgolyk3787
    @aleksandrgolyk3787 ปีที่แล้ว +5

    Просто огонь. Спасибо за гайд. Побольше таких❤️

  • @istinavtebe
    @istinavtebe ปีที่แล้ว +16

    Чувак, благодарю тебя за твой контент, что ты делаешь, за твои старания, за твой труд. Недавно начал смотреть твои видосы, поверь кто бы что бы не говорил ты лучший, они просто завидуют. Охринительный контент))
    Выл бы очень благодарен, если бы ты хоть пару уроков как со сникерсом, пиццей сделаешь на Vue JS, было бы очень охриневательненно😊

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

    мой любимый канал по разработке! сейчас делаю диплом и добавляю intersection observer

  • @pashapofactu3897
    @pashapofactu3897 ปีที่แล้ว +7

    Вау, спасибо огромное , как раз хотел реализовать подгрузку

  • @user-nv3sl7cp4y
    @user-nv3sl7cp4y ปีที่แล้ว

    очень крутой видос! спасибо! про Обсервер знал, но все равно что-то новое подчерпнул!)

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

    Супер, спасибо за труды!

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

    мужик, шикарное объяснение! спасибо!

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

    Класс, новый ролик, давно не было!
    upd: интересный контент, observer универсальным показался, всякие транзишены, для которых раньше lax или aos использовал, при желание можно заменить этой функцией

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

    Лучший!Жду новых роликов + про собес

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

    Контент шикарен, спасибо!!

  • @user-ky2iu9tt9f
    @user-ky2iu9tt9f ปีที่แล้ว

    Спасибо большое за информацию!

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

    Спасибо за ролик, очень важный хук

  • @ilyapidzhakov2159
    @ilyapidzhakov2159 หลายเดือนก่อน

    супер классно объяснил и показал👍

  • @Pet-Beds-Club
    @Pet-Beds-Club ปีที่แล้ว

    Отличное объяснение!

  • @nk_77777
    @nk_77777 2 หลายเดือนก่อน

    Братан, ты просто лучший)

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

    Больше таких видео 🔥

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

    Привет! Давно не было вас тут) хотя я гейм разработчик но ваши ролики для меня как медитация на фоне.

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

    Автору респект и уважуха

  • @alex91073
    @alex91073 หลายเดือนก่อน

    спасибо, очень помог!)

  • @abdiqadyryerzhanov7820
    @abdiqadyryerzhanov7820 ปีที่แล้ว +7

    Спасибо автору за ролики, по моему недооцененный канал по рякту!

  • @user-kd8cm1lh2d
    @user-kd8cm1lh2d หลายเดือนก่อน

    Автор спас меня😊

  • @user-pt5vc1uy9o
    @user-pt5vc1uy9o ปีที่แล้ว

    Ништяк! Спасибо!

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

    Шикарный способ, жаль раньше не узнал о нем

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

    Наконец то новый видео 🙂

  • @user-kt7fm6ow4p
    @user-kt7fm6ow4p 6 หลายเดือนก่อน

    Спасибо, все понятно

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

    Спасибо, ждём новые видео

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

    Лучший!

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

    Спасибо👍👏

  • @user-dt9tb2rm7l
    @user-dt9tb2rm7l ปีที่แล้ว

    Супер!

  • @Dedinside-vv5cr
    @Dedinside-vv5cr ปีที่แล้ว +9

    Привет! Очень хотелось бы увидеть интеграцию платежной системы, всех благ!

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

      Согласен полностью! Поднимите пожалуйста коммент в топ, чтобы автор увидел 🙏

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

    респект тебе

  • @user-ku9md8kb4z
    @user-ku9md8kb4z 4 หลายเดือนก่อน

    Саг ва! Супер!

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

    Полезно

  • @user-nv5de5or3r
    @user-nv5de5or3r ปีที่แล้ว

    Класс

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

    Thanks!!!!

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

    не приятно лишь то, что тыкаешь).Мог бы обращаться на ВЫ.Так приятней.

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

    Вери спасибосо!

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

    🔥🔥🔥🔥🔥

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

    Дякую тобі тільки що, внедрив на продакшині infinite scroll))

  • @user-gz4qu1bp2f
    @user-gz4qu1bp2f ปีที่แล้ว

    Спасибо! Будут ли уроки про next 13))?

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

    Пример с фото спорный. Intersection Observer может следить сразу за множеством элементов, а на примере, каждая фото порождает свой экземпляр наблюдателя и естественно, кушает больше аппаратных ресурсов устройства

  • @TheVakin213
    @TheVakin213 8 หลายเดือนก่อน

    Я сам писал похожий хук, по сути на мдн есть вся инфа, но, думаю, прямо начинающим эта либа будет удобна

  • @user-mc8zo5qc2c
    @user-mc8zo5qc2c 3 หลายเดือนก่อน

    Какое расширение при выделение слова используется в браузере
    Очень понравилось, минималистичное, красивое

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

    также рекомендую юзать для блокировки скролла при открытии модалки на модалки

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

    Возможно ли наблюдать за элементами с помощью IO используя реактовские рефы через useRef? У меня вылетает ошибка "Cannot read properties of undefined (reading 'isIntersecting')"

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

    Подскажите а где можно Photo.jsx найти?

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

    Приветствую! Подскажите, я вот чего не пойму, Webpack и Babel уже установлены ж в React или нет? Смотрю в интернете, но каждый раз они устанавливают его отдельно, хотя в node models там уже есть эти пакеты. Что тут происходит?

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

      если через шаблон create-react-app устанавливаешь реакт, то там уже есть вебпак, а если сам ставишь, то уже самому надо все делать

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

    Подскажите, есть ли у автора канала полные платные курсы по фронту? На Udemy, например

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

    Подскажите название цветовой темы

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

    Расскажите почему всплывают 3 лога?

  • @user-fi6nr6zv2i
    @user-fi6nr6zv2i ปีที่แล้ว

    Можно этой библиотекой сделать так, что бы на странице всегда было 15 елементов. Типо вниз до 20 дошел, и первые 10 удалил?

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

    Наставничество еще ведешь?

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

    Ну у атрибута лэзи тоже неплохо с поддержкой, может чуть хуже, но не так критично, чтобы не юзать его.

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

    МММ А Как применить этот хук допустим к 5 разным элементам в разных метах сайта

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

    Спасибо за ролики , я их очень ценю
    Однако эта тема и так раскрывалась на лерн джава скрипте , а отптимизировать полученение элементов и их кординат можно просто получив их кординаты единожды
    Было бы более классно если бы раскрыл нам менее очевидные темы
    например ты мог бы показать нам ssr на ноде , на примере того приложения с пиццей
    показать как работает стриминоговый сервис
    показать подключение авторизации через гугл или соц сеть

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

    Когда новая реaк
    т пицца?

  • @RusDevel
    @RusDevel 7 หลายเดือนก่อน

    А если нужно за несколькими элементами следить как быть?

    • @ArchakovBlog
      @ArchakovBlog  7 หลายเดือนก่อน

      Вешать несколько обработчиков

    • @RusDevel
      @RusDevel 6 หลายเดือนก่อน

      @@ArchakovBlog Не получилось. Вешаю ref на 2 блока как доходит до 2-го блока срабатывает одновременно на первом и втором. Мне нужно чтоб по очереди срабатывало( Все равно спасибо большое, многому у тебя научился.

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

    Ангуляр топ!!!

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

      отдельный лайк

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

      @@ArchakovBlog 😁

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

    В чем ценность урока? Установить пакет с хуком? Если бы сам написал этот хук - другое дело

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

    Спасибо за видео. Создание для каждой картинки нового IntersectionObserver, не бьёт по производительности? Я для такой задачи создавал один IntersectionObserver для родительского контейнера картинок и потом наблюдал за каждой картинкой - Array.from(imgsWrapper.current.children).forEach((item) => observer.observe(item));