Кастомный ХУК для изменения ТЕМЫ приложения на ReactJS (Темная тема React)

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

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

  • @beda9679
    @beda9679 5 หลายเดือนก่อน +1

    однозначно лайк. я не ожидал, что всего за 10 минут можно поменять тему в приложении. Актуально на апрель 2024

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

    Большое спасибо , это выглядит проще чем с материалюай

  • @ЖолдошбекУсенакунов-ж9е
    @ЖолдошбекУсенакунов-ж9е ปีที่แล้ว

    Спасибо большое. Я думал будет занимать большое количество времени, а оказалось не так. КОРОТКО, ЯСНО и ПОНЯТНО.

  • @user-cs7ex6vx9u
    @user-cs7ex6vx9u 2 ปีที่แล้ว +3

    Полезный хук, спасибо!

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

    Хороший контент, продолжайте в том же духе! Хотелось бы больше таких мини гайдов.

  • @VitalyKuznetsov-kd7wp
    @VitalyKuznetsov-kd7wp ปีที่แล้ว

    Отличное видео, спасибо. Проблема была в условии index.css (я просто убрал html и оставил [data-theme = 'dark'] {.....} и все работает. )

  • @ПашаВавилон-л1ч
    @ПашаВавилон-л1ч 2 ปีที่แล้ว

    Спасибо, всё просто и понятно. (React, hooks, useLayoutEffect, theme)

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

    Спасибо большое! Отличное видео, очень помогло! Поставил лайк и подписался! :)

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

    Спасибо)

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

    Текстовая версия 👉 it-dev-journal.ru/articles/kastomnyj-react-huk-dlya-izmeneniya-temy-veb-prilozheniya
    О переменных Sass и Как переключать темы с CSS и JavaScript в React приложении? 👉 th-cam.com/video/tYbAg1hcxTo/w-d-xo.html

  • @-UAcontent-
    @-UAcontent- 2 ปีที่แล้ว

    thank you very much, everything works!

  • @АлександрДми
    @АлександрДми 2 ปีที่แล้ว +2

    👍

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

    Спасибо

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

    Я бы добавил отслеживание изменения системной темы, а сохранение в сторедж вынес бы в анмаунт. А так полезный хук, спасибо:)

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

      да, вариаций много) спасибо)

  • @VitalyKuznetsov-kd7wp
    @VitalyKuznetsov-kd7wp ปีที่แล้ว

    Здравствуйте. У меня меняется data атрибут, присваиваются псевдо-стили, но все равно не стилизуется. В чем дело, как думаете?

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

    Очень полезное видео, спасибо! А возможен ли подобный вариант с SASS/SCSS?

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

      Спасибо!) что-то подобное делал в этом видео, там sass + css переменные: th-cam.com/video/tYbAg1hcxTo/w-d-xo.html
      код для компонентов: github.com/tutorials-coding/sass-sandbox/tree/main/src/components/Card

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

    Хорошо ли на прямую из реакта обращаться к DOM?
    У него же свой виртуальный дом который отслеживает изменения куда быстрее обычного dom, и распихивает накопившиеся изменения в frame, не вклиниваемчя ли мы в этот процесс, и не делаем ли хуже, обращаясь на прямую к дом?

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

    А на сколько включение анимации для элементов будет влиять на производительность?
    Ведь у нас сейчас простое приложение с несколькими css свойствами.
    Но что, если этих элементов будет оочень много?
    Если есть какие-то источники, которые можно по этой теме изучить, буду благодарен

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

      у меня лагает, простое приложение на tailwindcss (sqlite editor)

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

    Вопрос по переключению темы, а именно использование document. Если я правильно понимаю, при использовании document мы попадаем внутрь виртуального DOM, который контролирует React и без его ведома вносим новые элементы, что может со временем негативно отразиться в работе приложения. Если это так, то как тогда лучше решить подобную задачу?

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

      React контролирует только элемент с id="root" (он находится в body div), а мы добавляем data атрибут в тэг html

  • @never.m1nd
    @never.m1nd 5 หลายเดือนก่อน

    Привет! Если добавляю transition на body то при начальной загрузке страницы (или перезагрузке) происходит переход от светлой к темной теме, мигание или перетекание, выглядит не очень эстетично. Как этот баг убрать?

    • @never.m1nd
      @never.m1nd 4 หลายเดือนก่อน

      Сам и отвечу. Я пофиксил эту багу с помощью события load добавляя класс с transition только после загрузки HTML и внешних ресурсов:
      window.addEventListener('load', () => {
      document.body.classList.add('transition')
      })

  • @ГайдукМаксим-б1с
    @ГайдукМаксим-б1с 2 ปีที่แล้ว

    У меня есть вопрос, хоть я только и начинающий но я не понимаю зачем делать лишние методы на 5:40 если можно просто в обработчике событий написать анонимную функцию ?

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

      Это обычное разделение логики. Так легче считывать. То есть, вот на 5:40 в функции вызов одного действия, но уже к концу видео два. Возможно в дальнейшем потребуется ещё какая-то логика внутри функции. В итоге анонимная функция внутри компоненты будет выглядеть ужасно некрасиво.
      Кроме того, возможно, что в больших приложениях потребуется иметь эту функцию переключения темы не в одном, а в нескольких местах. Тогда её удобно было бы вынести в отдельный файл и импортировать.

  • @9mikaela
    @9mikaela 2 ปีที่แล้ว

    Этот хук будет лучше, чем если использовать контекст?

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

      Думаю большой разницы нет, этот хук хранит данные в localstorage (shared state), и поэтому его тоже можно вызывать в разных компонентах

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

    А код урока где можно найти?

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

      t.me/devmagazinechannel/163

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

      @@DevMagazineChannel Спасибо!! Очень полезный урок!🏆