Синхронизация Redux и localStorage с redux-persist

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ธ.ค. 2021
  • Кэширование данных приложения на стороне клиента (в браузере) - одна из центральных тем frontend-разработки. Работая с Redux, мы можем сами написать кастомную логику middleware, либо использовать готовую библиотеку redux-persist, которая сделает это за нас.
    Код из видео: github.com/michey85/redux-too...
    Мои курсы по вебу с купонами:
    ✅ mishanep.com/
    📢 Поддержка канала:
    / mishanep
    www.tinkoff.ru/rm/nepomnyasch...
    paypal.me/mishanep

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

  • @user-rl8qw2jf8r
    @user-rl8qw2jf8r 2 ปีที่แล้ว +88

    Пусть хранят тебя все силы, добрый человек. Без вас я себе весь мозг вывихнул. Огромное вам спасибо!

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

      +1, уже 3 час разбираюсь как сохранять корзину товаров в локале и взаимодействовать с удалением через toolkit

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

      Присоединяйтесь!!!!!! Можно сказать спасает некоторых людей от суицида!!!

  • @ilysov
    @ilysov ปีที่แล้ว +26

    Как вы приятно все объясняете! "Provider обнимает наше приложение" - растекся в улыбке, как будто меня вместе с приложением обняли))

  • @neodinok-it3ym
    @neodinok-it3ym 3 หลายเดือนก่อน +2

    Самые адекватные уроки по redux без воды, спасибо

  • @suspenseorigin5542
    @suspenseorigin5542 ปีที่แล้ว +8

    Я смог вникнуть в основы реакт и редакс только благодаря вашим урокам. Спасибо вам большое, Михаил!

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

      Смог настроить whitelist?

  • @black_light
    @black_light 3 หลายเดือนก่อน +1

    Отличный туториал. Спасибо за Ваш труд!

  • @user-qc1cn4dl8q
    @user-qc1cn4dl8q 2 ปีที่แล้ว +4

    Большое спасибо, Михаил. Не могу остановиться смотреть Ваши видео. Все очень доходчиво и понятно.

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

    Михаил, и снова спасибо) У вас как обычно, потрясающая подача информации. Благодарю за ваши труды👍

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

    Спасибо за такие полезные видео! обязательно ждем новых!

  • @user-hk3gd2fv5s
    @user-hk3gd2fv5s ปีที่แล้ว +1

    Супер! Быстро и по делу🤩

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

    Миллион лайков вам! Голову сломал по этой теме, ваше видео помогло разобраться:) спасибо вам Михаил!

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

    Михаил, спасибо Вам огромное. До Вашего видео мне приходилось всю логику с localStorage писать в санках (redux-thunk), а тут вот как все просто

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

    Благодарю! Добра тебе добрый человек)

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

    коротко и гениально, спасибо!!
    которій раз убеждаюсь в твоем таланте лекторства)

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

    Спасибо вам большое за ваши видео) Уже не первый раз выручаете

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

    Спасибо большое , доходчивое объяснения для начинающих)))

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

    Михаил, просто живите вечно!!!)) Спасибо вам за всегда полезную информацию!

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

    Супер. Дякую! Просто! Швидко! Зрозуміло!

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

    Объяснений понятнее ваших я еще не видел, спасибо!

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

    Благодарю за видео! Полезная штука.

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

    Огромное спасибо за видео! Оказался очень полезным)

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

    Спасибо, очень полезное видео!

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

    Миша, спасибо. Твоё видео помогло мне сделать фичу для тестового, закешировать результаты запроса, очень классно объясняешь! Redux-persist незаменимая штука, теперь не нужно выносить себе мозг с localstorage, потом парсить этот JSON, лукас, подписка и вот это вот всё:)

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

    Когда я что то не помню всегда вспоминаю тебя :)

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

    Спасибо! Вы оставляете отличное информационное наследие для последующих поколений разработчиков из СНГ.

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

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

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

      @@mishanep в любом случае 2-3 года хватит чтобы помочь тысячам людей

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

    Спасибо за объяснения, помогло!

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

    Михаил! Спасибо за ваш труд.
    Я как раз сейчас в поиске своей первой работы и пытаюсь оптимизировать решение Домашних Заданий, что дают на собеседовании. И всё больше сталкиваюсь что Редакс Персист или Редакс Тулкит упрощают жизнь, а на Вашем канале как раз есть все нужные ролики, не затянутые по времени и достаточно подробно разобраны.
    Т.к. в моей стране Джунов не ищут, а все уже должны быть синьорами, приходиться рисовать "виртуальный" опыт. А это несет под собой некоторые сложности в рассказе, а вот после Ваших роликов, рассказывать "как я делал" тот или иной проект, становиться проще)
    Ещё раз спасибо огромное за Труд!!!!!

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

    отлично объяснение, спасибо большое

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

    Очень крутая подача материала, все супер легко и понятно после просмотра! Спасибо огромное!

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

    Делала по Вашему видео туду с Redux Toolkit и по завершению задалась вопросом, как припилять local storage, чтобы после обновления страницы задачи не пропадали. И тут нахожу это видео как ответ на свой вопрос) спасибо за такой глобальный подход!

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

    Оо, крутяк. Очень крутой разбор полезного модуля

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

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

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

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

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

    спасибо за хороший ролик! очень понятно и доходчиво!!

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

    Михаил, спасибо!

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

    Спасибо за информацию!
    Будет круто увидить видео об использование с TypeScript

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

    Очень помог гайд, использовал для синхронизации товаров в корзине с localstorage, т.к. использую Next.js были проблемы и ошибки, но библиотека помогла, спасибо!

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

    Спасибо вам, Михаил ))

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

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

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

    Миша какое же ты добро делаешь, ты да же не представляешь!!!!

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

    Спасибо вам большое)

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

    спасибо, очень помогло это видео

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

    спасибо, просто спасибо, я уже замучался индусов смотреть на ютубе, пишу приложение на React Native с Redux Toolkit, встала задача сохранять стейт, дошел до Redux Persist, в документации не так сильно разжевано, как у тебя, спасибо еще раз

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

      Тут в видео не разжевано про сохранение стейта в глубину, если у вас есть потребность сохранять Стейт на 3 или больше уровня, то вы можете использовать библу redux-deep-persist
      Это просто надстройка над конфигом обычного redux-persist, очень поможет

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

    Крутая штука, спасибо!

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

    Ты знаешь, я только на англ читаю и учусь, но случайно наткнулся и оч понравилось как преподносишь материал. Приобрел твой курс на Юдеми, спасибо!

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

    Эх... Если бы моя благодарность знала границы, но она их не знает! :) Спасибо за видео, а то иногда почитаю документацию и ещё некоторые вопросы остаються, потом сижу ломаю голову, что да как, а так посмотрел видео и всё становиться понятно. Благодарю!

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

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

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

    Однозначно респектую из сердечка. Видно, что ты любишь свое дело чувак.

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

    Живи вечно! Здоровья и благополучия тебе, добрый человек!!!

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

      Спасибо =)

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

    Низкий поклон тебе! И от души спасибо! Ну как нельза вовремя на это видео попал! Избавил он махинаций с localStorage вручнуе..

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

    Забавно, увидев этот ролик в рекомендациях и прочитав его название я задал себе вопрос "а я вообще знаю, как прикрутить редакс к local storage?" Ответив отрицательно тут же решился на просмотр. Не пожалел ни разу, теперь добавил библу себе в закладки, спасибо!

  • @UnKnown-ur9fq
    @UnKnown-ur9fq 8 หลายเดือนก่อน

    красавчик! как всегда лучший! все максимально просто, понятно, без лишних слов на 3 часа

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

    шикарно!

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

    Спасбо, очень usefull :)

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

    spasibo brat

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

    Когда-то писал свой велосипед по этой теме через extraReducers. Тоже работало на ура. Но на днях решил провести рефакторинг старого проекта, и ресерчил тему синка с ls. Нашел утром персист) почитал доку и вот... TH-cam уже предлагает глянуть видос по теме... Прикольно! Утром прикручу)))

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

    спасибо друг)))

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

    Как же вовремя в рекомендации выпало это видео, я как раз ломал голову, как бы мне залить свой стор в Локал сторэдж)
    Ну думаю расслаблю мозг, залипну на 15 минут в ютьюбчик, а тут бац! 👌🏻😁
    Спасибо огромное за информацию 👍🏻

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

    Миша - красавчик, как обычно :)
    Я то как-то в петпроекте персистил стор без либы, по гайду Дэна Абрамова :)

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

    Браво

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

    круто!

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

    Было бы здорово увидеть еще в связке с TypeScript --- Redux-Persist

  • @27sosite73
    @27sosite73 ปีที่แล้ว

    Мішка, дякую

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

    Доделал до конца

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

    дякую

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

    Спасибо Михаил, попробуйте сделать на реакте Google keep, думаю будет интересно)

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

    Nice my friend

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

    Спасибо! Вот единственно чем редакс напрягает, это бесконечное количество дополнительных манипуляций, чтоб подключить что то допом. Можно было в сам тулкит встроить этот персист, и по флагу true его включать...Но нет, надо тащить еще кучу всего))) За ролик отдельная благодарность)

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

      Такая философия реакта... Нихрена не давать из коробки

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

      @@ruslanaliyev3765 да реакт то понятно...вопрос к тулкиту...почему санки засунули к себе, а работу с локальным хранилищм нет)

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

      Может ещё добавят :) thunk тоже не сразу появился)

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

      Я говорю, пока они раздупляться с этим реактом, чтобы он работал нормально без миллиона непонятных библиотек, уже выпустят какой-то другой фреймворк, или весь вэб перейдет куда-то.
      Клепать одно, потом делать другое, но всё равно не доработав до ума - это прям про реакт.

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

    совсем просто, оказывается. А то я мучался с кастомными решениями

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

    2:50 - Михаил, redux произносится как "рИдакс", если говорить конкретно про программирование, либо "ридАкс", если в значении "сокращение", но британское произношение даже в контексте программирования звучит как "ридАкс", но всегда не "рЕдакс"
    вот несколько примеров произношения:
    1. th-cam.com/video/T0elp5K9lLg/w-d-xo.html
    2. th-cam.com/video/iXskCHA8QCk/w-d-xo.htmlsi=YbCXtGsZz5aHB94g&t=5650
    3. th-cam.com/video/7fdQJ5ry_NI/w-d-xo.htmlsi=6GGb44XbKT_clcWl&t=1640
    4. th-cam.com/video/5XntRkFWpuw/w-d-xo.htmlsi=nEdDE9oEIGSrn20o&t=307
    5. th-cam.com/video/dfsyABvzpj0/w-d-xo.htmlsi=9WMEvnHRyLTH82mC&t=102
    6. th-cam.com/video/4X4tCIJeo8w/w-d-xo.htmlsi=tNzxFi7H_FespOJt&t=754

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

    Спасибо за видео Михаил! Скажите пожалуйста, планируется ли подобное видео по Redux-Saga?

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

      Пока не планирую. По redux saga есть несколько русскоязычных циклов на других каналах, они актуальные.

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

    Круто! А как это штука будет со Svelte работать?

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

    @mishanep Хорошее видео! Большое Вам спасибо за ваш труд и потраченное время. Возник небольшой вопрос, возможно есть идея записать такое видео. Как бы Вы настраивали redux на случай когда пользователь залогинен и данные нужно синхронизировать и сохранять в базу и наоборот когда пользователь только зарегистрировался и данные нужно перенести в базу?

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

      решил вопрос? как?

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

    Михаил было ли у вас что redux-persist не сохранял в localstorage? Я использую RTK query, на stack overflow уже смотрел и ничего не помогло, просто пустой массив как на 10:35 в видео, и туда не хочет добавляется ничего

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

      RTK query по своей сути задуман несколько для другого. Стейт-менеджером в данном случае является сервер, а инструменты вроде данного или его аналогов (SWR, react-query) постоянно получают обновления. В том числе распространен паттерн, когда данные инструменты запрашивают обновления, если какое-то время окно с сайтом было неактивно. Я не пробовал хранить данные с rtk query через persist, но, повторюсь, выглядит так, что задумано по-другому.

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

    Мне особенно сложно даются эти "моменты", вроде того как toolkit дружить с другими библиотеками redux, как его настроить для работы с observable я так и не понял(

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

    kruto

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

    у меня *getDefaultMiddleware is not a function* почему?

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

    Hi Mixail. i want to ask a question. how can i write multiple persist? you have one persistconfig and one key but if we want multiple persist?

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

      We can create nested persist. With Redux we always have only one store, it means that on a top level we don't need more than one persist. But, of course, we can nested them if needed.

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

      @@mishanep thats means redux always deploys datas in LocalStorage with 1 key. I get it. Just think we have 2 Slicer, one of them is counter which increase value, second is another process exp save data which we get from fetch. If have 2 slicer i need 2 key, deploy another names in locale

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

      @@alxanbayramov9128 Take a look at this part of the docs github.com/rt2zz/redux-persist#nested-persists Any nested persist has its own config with additional key.

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

      @@mishanep thanks a lot

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

    Можно ли как-то отловить событие закрытия вкладки и очистить localstorage?

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

      Можно. Но если вам надо очищать данные при закрытии - просто используйте SessionStorage.

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

    почему то не работает с новым nextjs при обновлении страницы все равно стейты слетают

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

    редУкс, редАкс, госсподи, блин, ааааааааа

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

    @mishanep Михаил, а ведь это нормально не знать наизусть как все это пишется, если разбудить в 3 ночи, а просто представлять, что тот или иной функционал существует в принципе и в случае необходимости просто идти вспоминать его, ну или гуглить/стаковерфлоу/спрашивать в группах ? Объем информации же огромен, как это все можно помнить, особенно, если не каждый день это пишешь

    • @mishanep
      @mishanep  9 หลายเดือนก่อน +1

      Конечно. Многие вещи мы делаем один-два раза при создании проекта. И чаще всего по документации.

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

      да, такой же вопрос возникает

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

    у меня ошибка из за TS когда передаю persistor в PersistGate. а как это исправить? памагитеее

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

      В документации redux toolkit есть страница, описывающая как быть с типами при использовании persist.

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

    Ден Абрамов на своих стримах говорит "Редáкс"

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

    redux-persist failed to create sync storage. falling back to noop storage.
    Меня данная ошибка беспокоит, тут нашел решение через noopStorage, но не знаю, насколько это корректное решение. Был бы рад, если отпишитесь по этому поводу

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

      Не сталкивался с такой проблематикой.

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

    Либа уже три года не обновлялась. Насколько это критично?

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

    Просто и доступно. спасибо бро )