Подробно изучаем Zustand State Management (React, TypeScript)

Поделиться
HTML-код
  • Опубликовано: 11 окт 2024

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

  • @galievramil1169
    @galievramil1169 Год назад +3

    Перешёл целиком на zustand. Задолбал rtk своим boilerplate.
    Спасибо Елена, узнал о нем от Вас

  • @ЭльнараГайнанова-ф3к
    @ЭльнараГайнанова-ф3к 10 месяцев назад

    Очень-очень нравятся Ваши уроки, очень рада, что нашла канал ❤

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

    Огромное спасибо, Елена! Как раз собирался искать материалы на тему устройства "сторов" и по приёмам их использования. Именно такой полноты подачи информации мне и хотелось! Слушал ролик в парке, ещё придётся пересмотреть его за компьютером, но я получил огромное удовольствие от прогулки и большую помощь))

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

      Круто, круто! :))

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

    Елена спасибо большое за твои видео. всегда приятно тебя послушать!) Желаю тебе сил продолжать этим заниматься!)

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

    Случайно набрел на канал, начал смотреть и пока интересно, лайк уже влепил 💪🏻🙏🏻.

  • @Владимир.П-е9о
    @Владимир.П-е9о 2 года назад +2

    Классное видео! Даже если никогда не придется использовать этот стейт-менеджер, всегда полезно узнать, а как же там за пределами редакса и mobx работают стейт-менеджеры.

  • @larisaplatova1644
    @larisaplatova1644 2 месяца назад

    Спасибо за информацию

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

    качество контента - топ)

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

      согласен! и теория и практика в одном видео

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

    А можно ли создать декоратор @Request, который в create на конкретные методы будет автоматически добавлять параметры к запросам?
    И оформить это как декоратор, или мидлвару

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

    Спасибо за разнообразный контент.

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

    Zustand - большой топчик! Мы тоже его используем в продакшне

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

    37:49 как же классно, что с такой подпиской извне нам не нужны провайдеры... И так в мэйне десяток провайдеров) и каждому свой обьект. И каждый хочет перерисовать всех чилдренов...
    А как удобно: есть сторы и используйте их где хотите, как хотите. В противовес бойлерплейтам на бойлерплейтах редакса. И чтобы в провайдере.
    А если у нас микрофронтенды, то мы получаем каждой кнопке по провайдеру? 😅🤦🏻‍♂️

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

    Тут в комментах говорят про машину времени за счёт копии стейта. А реально, когда-то нужно? Не вспомнил ни одного реального кейса, где эта машина времени что-то серьезное дает.

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

    Ура-ура, наша Елена Премудрая (по совместительству Прекрасная) запилила новый гайд))
    Елена, а создайте пожалуйста урок с мини-приложением полного цикла (верстка + state + запросы апи + тестирование, хотя бы минимальное через Jest). Часто от новичков требуют знания везде, но понемногу. Хотелось бы такой небольшой проект написать, где все сразу.

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

      Постепенно буду добавлять. ❤️

  • @ИгорьХромов-ь1е
    @ИгорьХромов-ь1е Год назад

    Елена, спасибо за контент!
    Интересный и простенький state manager. Concat на массиве объектов тоже своего рода мутация, так как копирование элементов производится по ссылкам.
    Когда вы делали unshift вы мутировали текущее состояние и если в devtools Zustand есть механизм таймлайн и можно прыгать по прошлым состояниям, то скорее всего вы увидите как дублируются состояния на разных отметках времени.

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

      Concat возвращает новый массив. Unshift да мутирует. Вот мы так на работе делаем, представляете! Безобразие да и только :))))
      Вообще спасибо за комментарий! Учимся дальше! ❤️🌹😎

    • @ИгорьХромов-ь1е
      @ИгорьХромов-ь1е Год назад

      @@webelart да, новый массив, но конкат не копирует объекты, а ссылается на теже объекты в памяти. Мутация над таким объектом, отразится на всём таймлайне, где он существовал.

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

      @@ИгорьХромов-ь1е да я понимаю о чем вы. Здесь только глубокая копия. 🫠

    • @dima__rx5fw3rm1n
      @dima__rx5fw3rm1n 6 месяцев назад

      @@webelartа глубокая копия - либо рекурсией создавать сущность, либо json.stringify? Я последнее во vuex юзал еще для второго вью)
      А фиг знает, все либы поверхностно копируют. От лодаша до андерскора. Потому, разве что так и переводить сначала в строку, а потом из строки в обьект.
      Либо обход дерева 🤷‍♂️ ну просто все поля переносить в новый объект

  • @АлдиярМарат-р7э
    @АлдиярМарат-р7э Год назад

    ты лучшая

  • @АлександрМелянюк-ц9ю

    Спасибо!)

  • @AlexGabber
    @AlexGabber 6 месяцев назад

    Спасибо, было полезно! Но за год Zustand еще несколько тысяч раз обновился и уже createStore функция не работает в текущем виде) Конкретно ему не нравится дженерик в UseBoundStore, в результате все отваливается. К тому же set({ name: __name }, false, 'setUser') ругается на третий аргумент. Нашел решение во втором аргументе девтулза указывать enabled: isDev ? false : true и это убирает слайс из тевтулза. Но меня немного это смущает, по хорошему при билде девтулз нужно вырезать или в принципе enabled отличное решение в плане цены и анонимности? Не наделает дырок в безопасности? Ну бандл наверное увеличит на пару кб, что не страшно

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

      Да, там много что обновилось. Про вопросы, нужно проверять. Я помню пробовала обновить на новую версию и вроде ошибок не было, но вся система не завелась. В команде не было ресурсов на обновление более, поэтому я переключилась на другие задачи. Про безопасность. Каким образом, думаете может навредить? Мне кажется, что все что на фронте уже в зоне риска и не важно какой Стейт менеджер использовать... Важно все важные переменный и функционал выносить на сервер и не светить в стейте в том числе. Хотя иногда какой-нибудь auth-token сохраняют, но тоже по разному можно. Думаю это тоже не про Стейт.

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

      @@webelart спасибо, разобрался в вопросе полноценно. Нашел решение : const isDevMode = process.env.NODE_ENV === 'development'
      export const createState = (
      name: string,
      fn: StateCreator,
      ) => (
      isDevMode
      ? create(devtools(fn, { name, anonymousActionType: `${name}/action` }))
      : create(fn)) - мало ли кому-то пригодится на вашем канале)

    • @НікітаКорчемний-г4ч
      @НікітаКорчемний-г4ч 6 месяцев назад

      @@AlexGabber сейчас собирался смотреть, так что пригодиться )

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

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

    • @webelart
      @webelart  5 месяцев назад +1

      Нет, я не сама рисую. Обложки заказываю :) Да их делают очень круто.

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

    Альтернатива Редаксу? Надо посмотреть.

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

      Да, есть свои плюсы и минусы. На holyjs также читала мастер класс, если вдруг вам интересно. Там много вопросов и сравнений было с разными фреймворками. Ещё рекомендую посмотреть на reatom, создатель которого Артем Арутюнян.

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

    25:48 Обновленная документация говорит, что стейт не должен быть мутирован.

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

    35:00 не реактивный доступ к стору

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

    mobx топчик

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

      Mobx не юзала, но друзья кто используют, тоже хвалят 👍🏻

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

    нужно срочно видео, ломки...

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

    1. Мутабельность поддерживается
    2 FC пишется если у компоненты есть чилдрены, можете ознакомится

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

    main.tsx, 8я строка как называется оператор '!' ?
    Нигде не могу найти почитать