Почему я выбираю Zustand вместо Redux Toolkit?

Поділитися
Вставка
  • Опубліковано 10 лют 2025

КОМЕНТАРІ • 188

  • @PurpleSchool
    @PurpleSchool  Рік тому +1

    🔗 Ссылки:
    Zustand: zustand-demo.pmnd.rs/
    Redux Toolkit: redux-toolkit.js.org
    🎓 Курс по React и Redux Toolkit: purpleschool.ru/course/react-...
    🎓 Профессия Frontend: purpleschool.ru/profession/fr...
    💬 Telegram канал с полезными советами:
    t.me/purple_code_channel

  • @predok_mif
    @predok_mif Рік тому +11

    Не разобраны мидлвары редакса (+ у RTK еще есть энхэнсеры). За счет централизации, мидлвары дают огромные возможности управления и позволяют строить цепочки зависимых эвентов. Например, когда отправляются 3 запроса с небольшим промежутком (например поиск при наборе текста), и каждый последующий запрос отменяет предыдущий начатый, чтоб небыло "гонки" запросов. В Зустанде этот кейс освещен небыл.
    Логирование/отладка не надежная из за обязательных параметров в set, что сводит доверие к ней в ноль, а доверие к инструменту отладки - критично-важная штука.
    Не освещена проблема типизации TS. У RTK в продакшене - это настоящая боль, если делать все правильно... либо any везде и на кой тогда TS нужен - не понятно

    • @PurpleSchool
      @PurpleSchool  Рік тому +3

      Спасибо за дополнение. В видео сложно охватить все аспекты

    • @un_defined
      @un_defined Рік тому +1

      ну кстати спотыкался и на зу с этим. оч скудная дока по тс если не туду делать

    • @vladislav.filipov
      @vladislav.filipov Рік тому

      Подскажи ещё кейсы с использованием мидлваров в редаксе? Мне для расширения кругозора если что, а не докопаться) Просто гонку запросов при поиске решаю простым кастомным хуком (в реакте, но думаю речь итак о нем) с таймером.
      По поводу типов, у нас используется генератор методов с типами по опенапи схеме, потрясающая вещь) Ни без подводных, но однозначно спасение, вручную столько типов писать (и главное поддерживать) с ума сойти можно...

    • @uvy.studios
      @uvy.studios Рік тому

      ​​@@vladislav.filipov Не уверен, что кейс подходит под описание "гонки запросов". Когда страница загружается, необходимо отослать запросов 5 для получения всей информации. На первом запросе фронтэнд понимает, что токен авторизации истек. Чтобы остальные 4 запроса не отослались в молоко, мы блокируем поток запросов через mutex, перезапрашиваем токен с сервера, повторно делаем 1 запрос, и анлочим поток, делая оставшиеся 4 запроса. Ситуация с моего крайнего проекта)
      upd:
      Все запросы естественно делаются через Rtk query

    • @predok_mif
      @predok_mif Рік тому

      @@vladislav.filipov начнем с того, что вся асинхронщина в редакс - это мидлвары, даже те-же thunk'и - это мидлвара (выполняется в мидлваре), хоть и выглядит как экшен, который диспатчат. Еще есть батчеры экшенов, когда экшенов слишком много и нужно их накапливать в течении короткого промежутка времени и разом пропускать дальше, чтоб уменьшить количество ререндеров. Логгер - мидлвара. Есть мидлвары, которые связаны с history и можно прям из экшена делать редирект. Много их, но чаще нужно какие-то специфические триггеры экшенов нужны.

  • @ArthurMudrick
    @ArthurMudrick Рік тому +12

    10:25 парень всё видео отчаянно пытается заставлять себя произносить слово Zustand на немецкий манер - зуштант, но постоянно срывается на русское произношение - зустанд, зачем себя так мучать, ахах? Если ты говориш по-немецки с немецкоговорящими, то и произноси «зуштант» (прям аж с немецким говором), но здесь ты разговариваешь по-русски с русскоговорящей аудиторией, ну так и произноси слова на русский манер, зустанд, это нормально, разговаривая по-русски говорить на русский манер, с русской интонацией. Если какой-то бренд придумали в Германии, это не значит, что его нужно произносить на немецкий манер с немецкой интонацией, ты же японские бренды не произносишь на японский манер с японской интонацией, разговаривая по-русски с русскоговорящими, ахах.

    • @alexdubkov6998
      @alexdubkov6998 Рік тому +1

      Ну бутерброт как то выучили и рюкзак. И цуштанд тоже несложно.

  • @pvttrix
    @pvttrix Рік тому +7

    Произносится Цуштанд. Это немецкое слово , переводится как «состояние». А видео крутое)

    • @PurpleSchool
      @PurpleSchool  Рік тому

      Спасибо

    • @knowledgedose1956
      @knowledgedose1956 Рік тому +2

      добавлю, произносится "вит" а не "вайт", это прям в доке указано, французское слово

  • @Gazovchik
    @Gazovchik Рік тому +5

    Ничего себе работа сделана
    Кроме видео по теме - ещё и так подробно (сам ролик) на таймкоды разбит,,,,,,
    Всем Адекватности мира и добра, ребята.
    Успехов в учёбе - тем, кто (как я ) учится.

    • @PurpleSchool
      @PurpleSchool  Рік тому

      Рад, что понравилось)

    • @Gazovchik
      @Gazovchik Рік тому

      @@PurpleSchool
      я сам знаю, что такое тяжёлый труд.
      Поэтому всегда уважаю труд других!

  • @moon.trance
    @moon.trance Рік тому +15

    Давайте теперь сравнение с Pinia, чтобы любители редукса офигели от магии.

    • @sharkman6434
      @sharkman6434 Рік тому +11

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

    • @rgnaros
      @rgnaros Рік тому +2

      Ну zustand на самом деле близок к ананасу. Ну конечно да, на хватает вычисляемых свойств, но все же их по идее тоже можно делать

    • @moon.trance
      @moon.trance Рік тому +1

      @@sharkman6434 а давайте не натягивать сову на глобус. На видео показывают каунтер из доки, и выглядит этот каунтер раз в 10 лучше на Pinia.

    • @aweb_21
      @aweb_21 Рік тому +6

      @@sharkman6434 гитлаб на сколько лямов потянет ? Или озон ?

    • @adamburke4496
      @adamburke4496 Рік тому

      ​@@sharkman6434а в чем проблема Vue для разработки больших и сложных проектов? Несколько раз слышал об этом, но никаких пруфов не видел.

  • @Ponevejski
    @Ponevejski 11 місяців тому +1

    Антон, добрый день! Спасибо за ваши информативные видео, как всегда очень приятно смотреть. Скажите, есть ли у вас опыт использования Recoil? Достаточно много шумихи вокруг этого state manager, однако я изучив документацию не понял почему он произвел такой фурор, как по мне там слишком мало функционала, не совсем очевидная структура и я бы хотел узнать ваше мнение, был ли опыт использования и тд.
    Заранее благодарю!

    • @PurpleSchool
      @PurpleSchool  11 місяців тому +1

      Спасибо! Использовал на паре проектов, похож на Zustand

  • @Nuts_Cracker
    @Nuts_Cracker 23 дні тому

    Суть видео:
    - почему я выбираю Zustand?
    - потому что не понимаю и не умею готовить Redux-Toolkit ))
    1. Бойлерплэйт код - во-первых контрится AI ассистентом или шаблонами кода. И если смотреть непредвзято, то в Redux-Toolkit его сильно не больше, просто он более явный. А в Zustand он скрытый. Например чтобы devtools подключить в каждом сторе надо его добавлять. Чтобы обработать состояния асинхронного запроса и ошибки в Zustand придется нагородить еще больше бойлерплэйта, чем в RTK для той же задачи
    2. В Redux есть общий стор: это огромное преимущество, а не недостаток. С одной стороны можно разбить стор на логические фрагменты - слайсы, а с другой они соединяются через корневой стор и доступны друг другу в случае какой-то сложной логики
    3. В Redux-Toolkit есть пакет Reselect, который позволяет использовать комплексные селекторы с мемоизацией. Это когда возвращаемое значение вычисляется на основе данных из разных слайсов
    4. В createAsyncThunk можно получить доступ к любому слайсу комплексного стора, выполнить дополнительно любые другие экшены из других слайсов до, после или параллельно с текущим и т.д.
    5. В RTK immer идет из коробки, а в Zustand его надо подключать дополнительно (к слову о бойлерплэйте)
    В целом RTK выглядит более взрослым решением, которое подойдет как для простых стэйтов так и для очень сложных. Но на счетчиках Zustand конечно выигрывает, вопросов нет ))

  • @Santos20004
    @Santos20004 11 місяців тому +1

    спасибо большое за канал и школу. Вопрос : а будет ли что-то по RTK Query ?

    • @PurpleSchool
      @PurpleSchool  11 місяців тому

      Возможно сделаю видео

  • @biLLie_wiLLie
    @biLLie_wiLLie Рік тому +6

    В такие моменты я люблю vue - никакого выбора, есть только pinia)) пока реакт разработчики ломают голову что лучше, vue разрабы кайфуют)

    • @rgnaros
      @rgnaros Рік тому +1

      А как же VueX?) Redux для vue вроде тоже есть. да и mobx вроде существует

    • @biLLie_wiLLie
      @biLLie_wiLLie Рік тому

      @@rgnaros если бы ты знал, что такое pinia, то не упоминал бы veux )))

    • @nvdedmz
      @nvdedmz Рік тому

      Увы но это не так

    • @chudickgumanoid
      @chudickgumanoid Рік тому

      ​@@rgnaros vuex это и есть тот редакс от которого все уходят постепенно, пинья мега топорная и понятная, думать не надо, просто пиши код и используй.

    • @ПользовательПользователь-с8к
      @ПользовательПользователь-с8к Рік тому

      Ну во-первых, а в чем вопрос вообще?
      Сначала надо ответить на вопрос: "Зачем мне стейт-менкджер? Какие задачи он поможет мне решить лучше, чем встроенный useState"

  • @viktorkasap
    @viktorkasap Рік тому +3

    Спасибо, было полезно! Антон, сделай пожалуйста обзор effector, возможно ты в следующем видео будешь говорить почему ты решил использовать effector вместо zustand 😁

    • @PurpleSchool
      @PurpleSchool  Рік тому +1

      Гляну обязательно 😆

  • @romaniksanov8237
    @romaniksanov8237 Рік тому +4

    Здравствуйте. Многие рекомендуют использовать zustand с react-query для запросов API. Можете подсказать, насколько это рабочая связка? И показать пример, как это должно вместе работать. Я имею в виду через хук useQuery и useMutation. Или достаточно будет обращаться к серверу способом, который вы показали?

    • @PurpleSchool
      @PurpleSchool  Рік тому +1

      Вполне рабочий вариант, который я часто вижу на проектах

    • @Dendor3519
      @Dendor3519 Рік тому

      Мы начали так делать. В целом, на начальном этапе классно! Довольно простой код. Возможности есть.

  • @code_horizon_school
    @code_horizon_school Рік тому +2

    Дружище, спасибо огромное, помог немного проще понять Redux Toolkit😂😂😂
    У других не понятно, а тут каак понял, потому что другие заумно его как-то показывают.
    А во вторых - спасибо в целом за сравнение, наверное перейду с MobX на зустанд.
    Ну и конечно вопросик, это ты Copilot подключил, что редактор за тебя пол кода сам пишет?

    • @PurpleSchool
      @PurpleSchool  Рік тому +1

      Спасибо! Это плагин Codium

    • @code_horizon_school
      @code_horizon_school Рік тому

      @@PurpleSchool а есть на VScode? А то у меня ни NvChad, ни Astrovim не ворк

    • @PurpleSchool
      @PurpleSchool  Рік тому

      @@code_horizon_school думаю, что есть

  • @mimik4672
    @mimik4672 2 місяці тому

    Так в RTK есть Query, который под капотом и санки пишет и экшены, а на верх только хук генерирует, в котором уже есть все необходимое, для обработки загрузки, ошибок и прочего, а в зуштанде придется это все как я понимаю ручками прописывать и в чем тогда профит? Децентрализованный стор? не понимаю в чем его преимущество.

  • @WinchesterD
    @WinchesterD 4 місяці тому

    Недавно начал новый проект и установил в него Zustand, до этого работал на проекте где бвл Redux. После месяцев работы с Redux, Zustand - это пушка! Всё просто, понятно, без всякого бойлерплейта с thunk-ами и addBuilder-ами, просто бери и пользуйся. Похоже на усовершенствованную версию React context.

  • @MfeaR113
    @MfeaR113 10 місяців тому

    Потестил, немного отличается от RTK с точки зрения рендеринга. Если у нас есть много переменных в рамках одного store в разных компонентах то для то что бы обновлять только конкретные мы должны подписаться на конкретное значение,
    count = useZustandState((state) => state.count), по аналогии с RTK. Но! В отличии от Redux это же нужно сделать и для экшенов. То есть
    const increment = ((state) => state.increment)
    const decrement = ((state) => state.decrement)
    Если этого не сделать, то даже тот компонент, в котором используются только экшены (кнопка) будет тоже перерисовываться

  • @aweb_21
    @aweb_21 Рік тому +6

    Немного хейта, если позволишь, по поводу произношения)
    Первую часть ты произносишь как бы на Английском, зу, а вторую часть на немецком штанд.
    Вопрос: зачему ? 😁
    Ведь это немецкое слово цуштанд(состояние).
    Это тоже как если произносить французское vite - вайт, вместо вит.
    Без негатива, просто хотелось что-то написать, а тут такой повод 😁
    С уважением к Антону!

    • @PurpleSchool
      @PurpleSchool  Рік тому

      Как и сказал в видео, так произношу)

    • @abbze8272
      @abbze8272 Рік тому

      Ааа, вот почему так странно звучит в видео.
      Это на самом деле цуштанд))

    • @Roger-qj4wu
      @Roger-qj4wu Рік тому

      От создателей кА эс эс. А вообще никогда не понимал людей которым лень разобраться с правильным произношением. Со стороны это выглядит как бабка которая кричит что ей не "нужон ынтырнет"

  • @МихаилВикторович-р2я

    Лол, во ты приколист))) RTK query рассматривать не будем))) Я редакс в принципе использую только из-за RTK query, без него лучше что-то другое использовать. RTK query поддерживает кодсплиттинг (он децентрализован), я думаю можно и слайсы при желании «децентриализовать». В редаксе провайдер нужен что бы поддерживать изоморфизм, как зустанд с SSR работает? «Мало лишнего кода» лол, это помимо стора еще нужно все экшены в интерфейс добавлять, в редаксе экшены автоматом типизируются (ну почти). А асинхронные экшены вообще не нужны с RTK query. Если делать по уму, то и стор в принципе не нужен (всмысле слайсы), RTK query закрывает все потребности.
    Если пофиг на изоморфизм, хочется как можно меньше бойлерплейта и самый децентрализованный стор, то watch-state в помощь, там есть @watch-state/async и @watch-state/api (эта штука шарит состояние между вкладками, такой фичи вообще ни у кого нет) для асинхонщины.

    • @golden_smiles
      @golden_smiles Рік тому

      Поддерживаю данного оратора не токмо лайком, но и данным комментом.

    • @predok_mif
      @predok_mif Рік тому +1

      Я в свое время слез с редакса на RTK из за immutablejs, а RTK query так и не раскурил, ИМХО это большой оверхед.
      Децентрализованым RTK вроде сделать можно, и даже слайсы на лету добавлять-удалять (в редаксе я так делал), но только если нет мидлвар с собственным состоянием (saga - самый яркий пример). А т.к. без мидлвар оно никогда не применяется - не выйдет ((

    • @indigosay
      @indigosay Рік тому

      А если сравнить RTK Query и Tantask React Query? Какой вывод?

    • @rustamakhmetyanov4404
      @rustamakhmetyanov4404 Рік тому

      я примерно понял вас, но на практике не представляю не подскажите где можно на код такой посмотреть. я только постигаю в rtk. с чистым редакс не работал

    • @predok_mif
      @predok_mif Рік тому

      @@rustamakhmetyanov4404 Я искренне рекоммендую сделать хотя бы один проект на чистом редаксе для понимания внутрянки, тогда RTK будет сильно понятней. Только без TS, а то у редакса с ним не сложно, но гемора дико много, чтоб все сделать "правильно"

  • @PavelBokun
    @PavelBokun Рік тому +1

    Интересненько

  • @lex_nel3097
    @lex_nel3097 2 місяці тому

    А как у Zustand дела с гидрацией при использовании с Next.js?

    • @PurpleSchool
      @PurpleSchool  2 місяці тому

      @@lex_nel3097 ну он в основном используется для состояния на клиенте, но гидротируется нормально

  • @deanArtDev
    @deanArtDev Рік тому +5

    тема раскрыта не до конца как по мне, как обрабатывать состояния panding, fulfilled, как отлавливать ошибки на эндпоинтах. с RTK так же можно сделать отдельный слой в хуке где собрать все и отдать что нужно. А что там много болера позволяет очень гибко добавлять абстракции на нужных уровнях в зустанде это все приходится описывать в fetch функциях полагаю.
    Пока явного превосходства не видно как по мне

    • @PurpleSchool
      @PurpleSchool  Рік тому

      Для этого заводится состояние загрузки и ошибки в State.

    • @jessrabbitxt
      @jessrabbitxt Рік тому

      ​@@PurpleSchoolне излишний ли это бойлерплейт код?

    • @BugaevEvgeny
      @BugaevEvgeny Рік тому +3

      если на проекте появляется апи больше чем один запрос, то тулкит + ртк (квери) выглядит перспективней, так как в 2023 году самому писать фетчер и состояния ошибки в Стейт очень лень.

    • @vladislav.filipov
      @vladislav.filipov Рік тому

      ​@@jessrabbitxtв РТК оно тоже само по себе не проставится)

    • @vladislav.filipov
      @vladislav.filipov Рік тому

      ​@@BugaevEvgenyты случайно не про rtk query говоришь?

  • @ГенаПетров-н5ы
    @ГенаПетров-н5ы Рік тому +2

    Хотелось бы увидеть видео про Reatom, а то есть видео только от создателя. Интересен взгляд со стороны

  • @io0312
    @io0312 9 місяців тому

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

  • @maximkutprot7374
    @maximkutprot7374 Рік тому

    Zustand для управления локального стейта подходит в связке c TanStack Query - идеально

    • @arturseu
      @arturseu Рік тому

      можешь объяснить пожалуйста в чем преимущество? Что в одном что в другом случае ты кэшируешь данные, только useQuery дает из коробки много фишек для работы с ним.

    • @maximkutprot7374
      @maximkutprot7374 Рік тому

      TanStack Query для получения данных из вне(управление асинхронным состоянием). Zustand для управления локального состояния (например фильтрация), его значение можно использовать в качестве параметра в TanStack Query.

  • @dmitryts9093
    @dmitryts9093 Рік тому +1

    И в чем смысл видео? Почему выбор в пользу зустанда? посмотрел всё видео и редакс выглядит лучше, при том что это простой пример + ко всему автор не добавил типизацию и селекторы, и говорит что стору нужно давать тип
    Выбрали зустанд потому что меньше строчек кода? а то что в проектах по больше примера, зустанд в свалку превращается не сказал. В итоге вкусовщина

  • @andrTaylor
    @andrTaylor Рік тому

    Видео полезное, спасибо, но есть вопрос - а что делать, если в проекте используется zustand и модульная архитектура, где у каждого компонента свой децентрализованный стор, НО внезапно в каком-то одном компоненте понадобилось значение из другого? То есть в redux это делается легко через useSelector, ведь стейт централизован, а как сделать такое же поведение в zustand или как вообще в такой ситуации быть?

    • @PurpleSchool
      @PurpleSchool  Рік тому

      Ты можешь его получить: github.com/pmndrs/zustand/discussions/630

    • @ПользовательПользователь-с8к
      @ПользовательПользователь-с8к Рік тому

      Анти паттерн. Не надо такого допускать. ИМХО.
      Поэтому не использую глобальные стейт-менеджеры. Зачем для каждого компонента отдельный стор на zustand-е, чем не устроил useState?

    • @arturseu
      @arturseu Рік тому

      ​@@ПользовательПользователь-с8кне для каждого компонента. Никто тебя не запрещает иметь внутреннее состояние.
      Приведу пример drawer. Зачем импортить компонент в местах где он необходим каждый раз. У тебя могут быть много уникальных кейсов. Юзая глобальный стэйт тебе нужна только функция для взаимодействия. Все. Контекст не поможет потому что ты будет эффектить все компоненты и ререндерить их.

  • @dmitry9463
    @dmitry9463 Рік тому

    Почему децентрализованный стор это преимущество?

  • @frusen_sol
    @frusen_sol Рік тому +3

    Было бы интресно посмотреть про preact-signals

    • @PurpleSchool
      @PurpleSchool  Рік тому +1

      Может сделаю видео

    • @andyjs666
      @andyjs666 Рік тому

      Когда он появился, я его тут же затащил на проект (Next). Но увы. Он сломал HMR, и пришлось отказаться от него в пользу Valtio

  • @Братик-т4у
    @Братик-т4у Рік тому +7

    Было бы интересно посмотреть видео про Effector, а может даже и про его экосистему. Мало роликов на ютубе по данной технологии

    • @PurpleSchool
      @PurpleSchool  Рік тому

      Может быть сделаю

    • @jessrabbitxt
      @jessrabbitxt Рік тому +1

      Почему существует 100500 стейт менеджеров?

    • @proletarian
      @proletarian Рік тому

      @@jessrabbitxt потому что каждый знает как лучше

    • @proletarian
      @proletarian Рік тому +1

      @@jessrabbitxt к примеру тащить RTK в какой то маленький проект как то не целесообразно

    • @jessrabbitxt
      @jessrabbitxt Рік тому +1

      @@proletarian почему у вью один основной стейт менеджер (был vuex, для composition стал pinia), который прекрасно подходит, а у реакта их 200? опустим то, что некоторые из них можно юзать и с вью тоже (хз зачем)

  • @deGGenerate
    @deGGenerate Рік тому

    Воу воу воу на холивар нарываетесь молодой человек

    • @PurpleSchool
      @PurpleSchool  Рік тому +1

      Ну не очень я уже и молодой...

  • @SGWebDeveloper
    @SGWebDeveloper Рік тому +1

    Подскажите люди добрые как реализовать такие подсказки продолжения кода в VS Code ?

    • @miroslavwise9276
      @miroslavwise9276 Рік тому

      скорее всего, это Capilot, он уже платный стал

    • @PurpleSchool
      @PurpleSchool  Рік тому +1

      Это Codium и он бесплатен

    • @dencheechoo3681
      @dencheechoo3681 Рік тому +1

      или Codeium@@PurpleSchool Потому что Codium я поставил вроде как бесплатно только временно далее просит купить подписку

    • @PurpleSchool
      @PurpleSchool  Рік тому

      @@dencheechoo3681 👍

  • @miloman1995s
    @miloman1995s Рік тому +3

    блин цуштант звучит ужасно - хоть и типо правильно, как на немецком... зустанд - звучит круче

  • @seryozhamangushev9638
    @seryozhamangushev9638 Рік тому +1

    Этот Жуштенд ужасен, please так же подробно effector, он бомба!

  • @ЯрославЛ-к4щ
    @ЯрославЛ-к4щ Рік тому +4

    Это ещё бл что такое??? Опять что-то нужно учить?! Да ёмаёё....

  • @Moonlization
    @Moonlization Рік тому

    По-немецки цуштанд это состояние. Возможно так и следует его называть

  • @fedormakareev7108
    @fedormakareev7108 8 місяців тому +1

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

  • @AleksandrChernovIT
    @AleksandrChernovIT Рік тому

    О, теперь экшены именнованные в девтулс для Зустанда?

    • @PurpleSchool
      @PurpleSchool  Рік тому +1

      Их можно назвать, да

  • @proletarian
    @proletarian Рік тому +3

    Учу немецкий, и потому зуштанд делает больно моим ушам😅
    Z это "цэт" )

  • @ГусяНоздреватая

    А что думаете насчёт effector?

  • @sgsgsgsgsg-f2o
    @sgsgsgsgsg-f2o Рік тому

    Mobx one love

  • @clermontvv
    @clermontvv Рік тому +3

    Ни ssr, ни нормальных тестов (рассказ про мокинг в доке это полный треш), даже в компьютеды не умеет эта поделка - одним словом зустанд. Шляпа, распиаренная в твиттере, которая может только автоматически хук генерить. Ну и как же get/set, лучшее апи на свете. В нем просто ничего нет от слова совсем)))
    Спрашивается - зачем его брать на фоне существования других стм?

    • @PurpleSchool
      @PurpleSchool  Рік тому +2

      Zustand отлично работает с SSR и Next.

    • @clermontvv
      @clermontvv Рік тому +2

      @@PurpleSchool
      Я хочу на сервере нафетчить данные, засунуть их в сторы, отрендерить страницу, зашить сериализованные данные сторов в верстку, отправить верстку на клиент, десериализовать и положить их в сторы
      как мне это сделать с зустандом?

    • @golden_smiles
      @golden_smiles Рік тому +1

      @@PurpleSchool SSR и Next... Вот она, настоящая причина. Ежики продолжали колоться и кушать кактусы. Жаль, надо было сделать упор на это в видео, сравнили бы как оно летает с SSR там и здесь.

  • @undertale-15075O
    @undertale-15075O Рік тому

    Наш вариант pinia❤

  • @01slon
    @01slon Рік тому

    Не совсем понял, почему автор не рассматривает RTK-QUERY? Он вроде как из коробки идет, ничего дополнительного не нужно устанавливать.

    • @PurpleSchool
      @PurpleSchool  Рік тому

      Отдельно по нему сделаю разбор. Просто его правильно сравнивать с React Query.

    • @01slon
      @01slon Рік тому

      @@PurpleSchool хм, ну я считаю, что это не верный вывод. Это одна зависимость и я не понимаю, почему нужно игнорировать часть её возможностей. Вы оцениваете плюсы и минусы, так, на мой взгляд это плюс, который говорит в пользу редакс. У zustand, как я понял, нет такого функционала, даже близко. Так в чем преимущественно его перед редаксом? Что при инициализации нужно писать один раз меньше кода? А потом ещё нужно будет устанавливать другие зависимости, что бы делать запросы на сервер по человечески? Ну честно говоря, всё это говорит о преимуществах как раз редакса. Лично я, уж как-нибудь переживу, что один раз нужно будет написать немного больше кода.

    • @knowledgedose1956
      @knowledgedose1956 Рік тому

      ​@@01slonя бы сказал что react query удобней rtk query, и да это отдельная зависимость, ничего страшного в этом нет

    • @01slon
      @01slon Рік тому

      @@knowledgedose1956 ну скорей всего вы и правы, но я бы хотел пояснить, представьте себе, что мы сравниваем две машины. Одна крутая, быстрая, а вторая не такая крутая и не такая быстрая, но она еще и летать умеет. И автор предлагает не принимать во внимание, что машина умеет летать, а делает выводы, что машина стремная, потому что она медленной чем другие. Но она нифига не стремная, она же ещё летает. Может она летает не так круто как самолёт, но другие машины вообще не умеют летать. Не знаю, может сложный пример я выбрал)))))

    • @ПользовательПользователь-с8к
      @ПользовательПользователь-с8к Рік тому

      ​@@PurpleSchool согласен!

  • @vovka_goodwin
    @vovka_goodwin Рік тому

    О нет, это же очередной убийца Редакса xD
    На самом деле было бы очень интересно узнать как он себя поведёт на +- крупном проекте когда сторов будет не один десяток. Имхо - есть какая то точка невозврата, когда рулить этим всем станет сильно сложнее чем пресловутым бойлер плейтом редакса) Не спорю, что если пишется приложение с парой-тройкой страниц, то такой стейт менеджер будет закрывать все потребности, а редакс окажется избыточным

    • @Илья-с1л6э
      @Илья-с1л6э Рік тому

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

    • @ПользовательПользователь-с8к
      @ПользовательПользователь-с8к Рік тому

      Вот придумываете себе проблем
      Инструментом надо уметь пользоваться. By default в 95% случаев, если не больше, вам ни redux, ни zustand не нужны

    • @dimenuendo
      @dimenuendo 25 днів тому

      Так Цуштанд как раз таки для крупных проектов и подходит лучше всего.
      То что редакс весит больше - наверное единственное, что придаёт ему "серьёзности"

    • @vovka_goodwin
      @vovka_goodwin 25 днів тому

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

  • @slavapol-v1553
    @slavapol-v1553 Рік тому +3

    Mobx и reatom самые классные, у Mobx так вообще самый чистейший код, zustand в сравнении с ним какая то поделка.

    • @Fs-xj2gu
      @Fs-xj2gu 6 місяців тому

      reatom top

  • @boyywnkobe
    @boyywnkobe Рік тому

    Pls make comparison your editor vs vscode

  • @nvdedmz
    @nvdedmz Рік тому +1

    А надо было effector

  • @MeggErastian
    @MeggErastian Рік тому

    Жаль не рассказал что зустанд по дефолту хранит данные в локалСторэдже)))

    • @PurpleSchool
      @PurpleSchool  Рік тому

      Нет, только если ему подключить Persist Middleware

  • @JJohnson-fy9uz
    @JJohnson-fy9uz Рік тому +3

    MobX - лучший инструмент для управления состоянием. А вот на zustand и ему подобных только to-do листы писать =)

    • @PurpleSchool
      @PurpleSchool  Рік тому +1

      Почему?

    • @СамирАбасов
      @СамирАбасов Рік тому +3

      Странно что статистика npm говорит о другом 😂

    • @JJohnson-fy9uz
      @JJohnson-fy9uz Рік тому +1

      @@PurpleSchool Большие проекты обычно на RTK или MobX, на Zustand не видел

    • @JJohnson-fy9uz
      @JJohnson-fy9uz Рік тому

      @@СамирАбасов Действительно, тысячи мух не могут ошибаться =) Это как с create-react-app, который первый по деплоям на Netlify

    • @un_defined
      @un_defined Рік тому +1

      @@JJohnson-fy9uz так и годиков сколько ему

  • @АртемКлементьев-ю9ь

    что за браузер на видео?

    • @PurpleSchool
      @PurpleSchool  Рік тому

      Arc Browser. У меня есть про него видео

  • @thats_embarrassing_JS
    @thats_embarrassing_JS Рік тому +1

    Mobx - наше всё.

  • @vadikpanchuk4978
    @vadikpanchuk4978 Рік тому

    Посмотрел. Если у вас в коде компоненты фигурирует dispatch, то вы знаете об возможностях rtk примерно как большинство разработчиков про JS.

  • @vendjin
    @vendjin Рік тому +3

    Я тоже перешел на zustand

  • @psy_kalmykov
    @psy_kalmykov Рік тому +2

    Выбирать надо эффектор

  • @fedordostoevskiy4209
    @fedordostoevskiy4209 Рік тому

    Студенты чего? Zustand?

  • @Dendor3519
    @Dendor3519 Рік тому

    А ещё zustand быстрее.

  • @AlexGabber
    @AlexGabber 10 місяців тому

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

  • @dumkiAndrusja
    @dumkiAndrusja Рік тому +2

    цуштант)

  • @diamondmedia3076
    @diamondmedia3076 Рік тому

    Цуштанд. Немецкий язык.

  • @Fs-xj2gu
    @Fs-xj2gu 6 місяців тому

    reatom лучше

  • @ilguciems
    @ilguciems Рік тому

    Цуштанд

  • @NonameDiablo
    @NonameDiablo 10 місяців тому

    Редакс это дерьмо.