Как сделать пагинацию на React.js ? [React Pagination]

Поделиться
HTML-код
  • Опубликовано: 6 июл 2024
  • 🏆 Поднять мотивацию и получить плюшки(сборка, исходники, чат со мной):
    🔹 Patreon: / roman_timoshchuk
    🔹 Buy me a coffee: www.buymeacoffee.com/tymoshchuk
    🔹 Crypto:
    👉 USDT(ERC20): 0xA4008910De17DB20c7505425316fF72d4C5Eed96
    👉 USDT(BEP20): 0x4350c4E1C0bB35634C7fDE1cFB278BE0606E3822
    👉 Binance Pay: 432902886
    ⏱️ Тайм-коды: ⏱️
    00:00 Обзор приложения
    01:11 Создаем проект
    02:00 Создание state'ов
    03:22 Работа с API
    05:55 Создание компонента Countries
    09:55 Определение текущей страницы
    11:21 Создание компонента Paginate
    17:55 БОНУС
    📨 Сотрудничество ► timoschuk.roman@gmail.com
    📨 Business inquiries ► timoschuk.roman@gmail.com

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

  • @lets_try_js
    @lets_try_js  3 года назад +5

    Что еще из базовых вещей вам было би интересно узнать, как реализовать ?)

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

      Accordion

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

      @@user-wl2xp8yo6x услышал)

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

      Запросы с get, с базы данных

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

      @@vlasmaskalenchik8393 есть на канале видосик про MERN, там есть запросы с базы
      так же есть ролик про Next.js, там я тоже показываю и бэк в том числе)

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

      Кастомный дропдаун) Спасибо)

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

    Спасибо за пагинацию. Как раз то, что было нужно

  • @Ivan56792
    @Ivan56792 2 года назад +2

    Спасибо за урок, просто и понятно!

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

    Просто великолепное видео, сделал у себя в проекте, получилось круто! Благодарность автору)

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

    Большое спасибо за полезный и нужный урок.

  • @niakhai3659
    @niakhai3659 3 месяца назад +1

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

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

    Спасибо! Видео было очень полезным

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

    спасибо, вместе с mui оч классно получилось !!!

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

    Спасибо тебе за такой урок, возможно благодаря тебе получу свою первую работу

  • @evgenya_pan
    @evgenya_pan 11 месяцев назад +1

    Спасибо, вы очень помогли!

  • @wastend917
    @wastend917 11 месяцев назад

    Лучший, очень полезный материал!

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

    без заморочек спасибо друг

  • @user-sy1sy3gu2t
    @user-sy1sy3gu2t 3 года назад +1

    Спасибо, очень круто

  • @bentonfraizer69
    @bentonfraizer69 Год назад

    Спасибо за полезное видео 🤝

  • @yaroslavzef7267
    @yaroslavzef7267 2 года назад +2

    Спасибо помогло)

  • @user-vp9qe7gh1h
    @user-vp9qe7gh1h 2 месяца назад

    Спасибо Вам за проделанную работу, взял вариант на вооружение

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

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

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

    интересно и просто) у меня сразу поулчилось

  • @user-zt2ot2wj9p
    @user-zt2ot2wj9p 6 месяцев назад +1

    Супер спасибо огромное.

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

    Спасибо огромное! Очень помогло)

  • @Nick-hq8of
    @Nick-hq8of 2 года назад +1

    Спасибо дружище за труды

  • @novikov-pavel
    @novikov-pavel Год назад

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

  • @romanpityul8805
    @romanpityul8805 Год назад

    Спасибо! Помог! Ни как не могу раскурить пагинацию)

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

    спасибо все получилось, лучший просто, выручил очень сильно 😘😘

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

    очень годно

  • @dever312
    @dever312 11 месяцев назад +1

    Bro you nailed it !

  • @nk_77777
    @nk_77777 4 месяца назад

    От души, бро)

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

    Очень полезный материал! Спасибо! Можно сделать полосу заполнения формы в React

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

    очень круто, помог)

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

    Дуже класне відео. Дякую

    • @lets_try_js
      @lets_try_js  Год назад

      скоро буде відео про більш круту реалізацію пагінаціі)

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

    Спасибо, друг. Выручил.

  • @fisher9340
    @fisher9340 7 месяцев назад

    best the best! спасибо

  • @Sergentors
    @Sergentors 6 месяцев назад +1

    Братан, ты топ.

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

    Круто, спасибо, мотаю на ус! А с react-router это можно как-то совместить?

  • @kadirov_style
    @kadirov_style 9 месяцев назад

    спасибо мне помог

  • @andriishpontak1000
    @andriishpontak1000 Год назад

    Дуже дякую!

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

    Лайк

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

    За урок спасибо! Можно как-то через реакт в пагинацию заливать контейнеры, содержащие картинки или видеофайлы в виде ссылок url к сторонней базе? ломаю голову не могу придумать как сделать по человечески)

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

    Спасибо за познавательный контент! Очень здорово объясняешь.
    Есть такой вопрос - на 6.20 ты разворачиваешь реакт компонент, набрав rfc, но у меня в vs code разворачивается классовый компонент, можешь подсказать, это у тебя плагин установлен или где-то в настройках задать?

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

      ES7+ Snippets или как то так называется плагин, сейчас нет возможности проверить

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

      Спасибо!

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

    Спасибо за урок, все очень круто))

  • @bama2619
    @bama2619 Год назад

    Спасибо. Было бы интересно со своими css классами, без bootstrap

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

    Спасибо автору за видео но есть нюанс. Когда находишься на первой странице и нажимаешь Prev Page то все крашится и так же если дойти до конца списка и нажать Next Page. Хорошо бы предусмотреть условие

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

    Застрял на выводе стран... Сначала сделал по своему - ошибка. Переписал символ в символ с видео. Та же ошибка -Objects are not valid as a React child (found: object with keys {common, official, nativeName}). If you meant to render a collection of children, use an array instead.😭

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

    Это перевод с канала BradTraversy? =) точнее TraversyMedia

  • @user-rr7yr9ml9p
    @user-rr7yr9ml9p Год назад +1

    В реальной жизни мы почти никогда не будем тянуть сразу все элементы, поэтому ожидал от видео что покажут как работать в таком случае

    • @lets_try_js
      @lets_try_js  Год назад

      такая пагинация делается уже на бэке

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

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

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

      Это react snipets устанавливается в вашей ide, полезные шорткаты, ответил если кто еще не знает)

  • @blackwood8816
    @blackwood8816 4 месяца назад

    у меня с 1 prev отрабатывает на пустой экран, подскажи плиз, как можно реализовать, что бы дойдя до 1 останавливался массив. Условия не помогли.

  • @askarzhaanbaev5834
    @askarzhaanbaev5834 Год назад

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

    • @user-sn4ib9dt3e
      @user-sn4ib9dt3e 3 месяца назад

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

  • @MrUnknownman1986
    @MrUnknownman1986 4 месяца назад

    А почему нам нужно делать setLoading(true) , а потом setLoading(false) в useEffect, что это нам дает, без этого нельзя обойтись ? 5:14

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

    У меня только Loading... и все? Сломалось чтоль?

  • @votex0014
    @votex0014 5 месяцев назад

    Единственное что нет смысла использовать useState для country per page, можно просто в константу

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

    Хороший урок,а то я у одного иностранца по имени Педро смотрел там у него была ошибка вроде все правильно но кнопки не работают и всего 1 цифра вместо 10

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

    Найс кнопки сделал в конце)) Если карент пейдж равна 1 пожмякай на превпейдж кнопку и глянь че будет)

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

      ну это легко поправляется)
      хотя не стоило все таки эти кнопки добавлять

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

      Сделайте доп проверку на номер страницы, это не так сложно:
      function prevPage() {
      setCurrentPage(pageNumber => pageNumber === 1 ? 1 : pageNumber - 1)
      }
      function nextPage() {
      setCurrentPage(pageNumber =>
      pageNumber === Math.ceil(countries.length / countriesPerPages) ?
      pageNumber : pageNumber + 1)
      }

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

      @@lets_try_js if(currentPage !== 1) Хватило такого условия в prevPage чтоб пофиксить и аналогичного в nextPage. Почему не стоило добавлять кнопки? Удобный функционал для юзера.

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

    Как быстро развернуть компонент? Что за магия такая?

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

      это снипеты, в зависимости в чем кодишь, по разному. я использую для react в vscode расширения Reactjs code snippets создаешь файлик пишень в нем rsc, и нажимаешь таб или ентер, создается пустой компонент с импортом и експортом. ну так полно разных снипетов, обьяснил на примере этого

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

    что то Api не работает

  • @user-fp3wz3lx7n
    @user-fp3wz3lx7n 2 месяца назад +1

    То что делает автор это не пагинация как таковая, а просто порционный рендеринг данных. Возможно для кейса со странами когда записей 200-300 этот кейс и будет полезен, но в большинстве случаев нет. Пагинация предполагает порционное получения данных с сервера. Представьте абстрактный пример что у вас ендпоинт отдает миллион строк, при данном подходе вам придется сначала этот миллион запросить, запросы без лимита могут создавать достаточно серьёзную нагрузку на бекенд, обязательно нужно передавать лимит или номер страницы в запросе. Если вы изучаете Реакт и ищите пример пагинации, то это не то что вам нужно

  • @yarmik3d
    @yarmik3d 3 года назад +6

    Это никуда не годится, а если апи возвращает список из тысячи и более элементов? Пагинация должна определяться на бэке, а не на фронте.

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

      должна, но не всегда определяется)

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

      @@lets_try_js Тогда у этого веб приложения нет перспектив.

    • @awenn2015
      @awenn2015 2 года назад +2

      @@lets_try_js и к тому же отображать все 35 элементов пагинации эт очень стремная идея, нужно сокращать до 1, 2, 3 ... 15 ... 34, 35, 36 суть надеюсь уловил

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

      @@awenn2015 ясное дело)
      тут прям совсем база, что бы понимать, как это работает
      исходя из этого, уже можно сделать так, как ты написал

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

      @@lets_try_js ну я думаю в конце можно было сделать ремарку на это, мол вот я все это показал но еще лучше делать так, а то будут потом все такие пагинации делать )) я кстати сам react не так долго изучаю , базовые хуки выучил , интересная тема когда нужно думать только о логике без постоянных манипуляций с дом деревом

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

    сел делать, а аппи не работает...

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

      Любую апишку можно взять )

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

      @@lets_try_js Взял это..Спасибо за урок"!!!!

  • @druf5962
    @druf5962 Год назад

    очень много недостатков, не продуман урок

  • @Just__Ilya
    @Just__Ilya Год назад

    стран стало 251, и это нужно уже 26 страниц, но math.floor не покажет тебе 26 страницу, поэтому лучше Math.ceil.