background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Zustand и React query. State management в React без боли"

input logo icon
Теги видео
|

Теги видео

zustand
zustand react
react state manager
react redux
redux
redux vs zustand
react zustand tutorial
zustand уроки
zustand курс
zustand react query
react query
zustand rtk
redux toolkit
react rtk
react redux toolkit
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:05
Приветствую вас друзья все чаще и чаще
00:00:08
меня спрашивают про активно набирающий
00:00:11
сейчас популярность State Manager в
00:00:13
react за Stand или zustant не знаю как
00:00:15
правильно буду называть за стенд если
00:00:17
что поправьте в комментариях это супер
00:00:20
простой в использовании State Manager
00:00:22
Альтернатива редаксу в принципе из-за
00:00:24
того что он простой у него неплохая
00:00:25
документация я не буду снимать какой-то
00:00:27
супер подробный гайд в виде такого
00:00:30
быстрого туториала мы пробежимся по
00:00:32
основным концепциям с моими
00:00:33
комментариями дополнениями посмотрим что
00:00:36
он из себя представляет плюс интересно
00:00:37
послушать ваше мнение что вы о нем
00:00:39
думаете использовали в продакшене Ну и
00:00:43
без лишних слов предлагаю сразу начать
00:00:44
Итак в первую очередь Давайте посмотрим
00:00:46
на динамику роста популярности в начале
00:00:49
22 года Это было 300 тысяч скачиваний в
00:00:51
неделю на текущий момент на начало 23
00:00:54
года это уже чуть больше миллиона
00:00:56
скачиваний в неделю то есть на текущий
00:00:58
момент это самый быстро набирающий
00:01:00
популярность стоит для реакта Хотя его
00:01:03
можно использовать не только в реакте
00:01:05
например тот же мобыкс уже примерно
00:01:07
несколько лет находится на одной отметке
00:01:10
и как бы новая аудитория его не особо
00:01:12
используют около 800 900 тысяч
00:01:14
скачиваний за неделю Ну не обсуждаемым
00:01:17
лидером безусловно является редакция это
00:01:19
Восемь с половиной миллионов скачиваний
00:01:21
за неделю из появлением того же редак
00:01:24
стал Кит в него как бы вдохнулась Новая
00:01:26
жизнь Если сравнивать размеры пакетов то
00:01:28
в минимизированном виде редакции весит
00:01:30
44 килобайта мог быть почти 60 и
00:01:34
застанут почти три килобайта При этом
00:01:37
надо помнить что к редаксу еще идет
00:01:39
реакт редакс пакет для того чтобы
00:01:41
реакция редаксом связать еще идет окно
00:01:44
выксу также необходимо установить еще
00:01:46
реакт мог бы x-lite кажется пакет
00:01:48
называется Но в общем из преимуществ за
00:01:50
стенд уже можно выделить его
00:01:52
легковесность плюс также разработчики
00:01:54
обещают что это одно из самых быстрых в
00:01:56
плане работоспособности решений близко к
00:01:59
нативному реакту Ну и также его простота
00:02:01
Давайте и посмотрим что он из себя
00:02:03
представляет на практике насколько вы
00:02:05
знаете в первую очередь стоит менеджеры
00:02:07
нужны для того чтобы отделить работу с
00:02:10
данными вот это вот бизнес логику от
00:02:12
компонентов и избавиться от проблемы
00:02:14
пробзрилинга мы выносим все это в
00:02:16
какой-то отдельный Store и в нужных
00:02:18
компонентах из этого стора данный
00:02:20
цепляем мы не прокидываем их через
00:02:22
пропсы по цепочке компонентов и также
00:02:24
насколько вы знаете если особо не
00:02:26
изощряться у редакса всегда одно единое
00:02:30
глобальное хранилище один Store и с этим
00:02:32
стором все приложения работает Можно
00:02:35
конечно делать и мультисторы но это уже
00:02:37
придется свой велосипед писать так вот
00:02:39
сейчас почти во всех стоит менеджерах от
00:02:41
этого глобального единого стора
00:02:43
избавляются и делают мультистором то
00:02:46
есть мы создаем разные истории которые
00:02:48
хранят разные данные по разным их
00:02:50
обрабатывают и в нужных местах мы к ним
00:02:52
Обращаемся и вот сейчас по слайду может
00:02:54
показаться что это неудобно может
00:02:56
возникнуть хаос переплетения между
00:02:58
модулями Но если нарисовать это уже вот
00:03:01
так то концепция мультисторов отлично
00:03:04
вписывается в модульную архитектуру в
00:03:06
модульный подход гораздо лучше чем
00:03:08
концепция единого хранилища которое
00:03:11
изначально пропагандировалась редакса
00:03:13
также в редак стулкит насколько вы
00:03:15
знаете из коробки идет rtk query для
00:03:17
удобной работы с бэкэндом и вот если
00:03:20
говорить про застен то он очень классно
00:03:23
сочетается с rect query и действительно
00:03:25
управление состоянием и работа с
00:03:27
бэкендом становится очень удобной Кстати
00:03:29
если про реакции нужен будет подобный
00:03:31
тоже урок разбор обзор то обязательно
00:03:33
пишите в комментариях Итак смотрим
00:03:36
теперь на него в деле разворачиваем с
00:03:38
помощью Create reactip и template для
00:03:40
Type скрипта проект импортируем функцию
00:03:43
Create и сразу же создаем первый наш
00:03:46
Store для того чтобы хранить список
00:03:48
пользователей
00:03:49
при этом как я уже говорил таких столов
00:03:52
у нас может быть Сколь угодно много Под
00:03:54
каждый модуль который есть в нашем
00:03:56
приложении внутри подобным образом мы
00:03:59
объявляем данные объявляем State с
00:04:01
которым в дальнейшем нам предстоит
00:04:02
работать это могут быть абсолютно любые
00:04:04
данные массивы объекты примитивы в общем
00:04:08
все что вам требуется для реализации
00:04:09
бизнес логики прям здесь же мы можем
00:04:12
создать функцию которая будет менять
00:04:15
State Обратите внимание это обычный
00:04:18
колбек который аргументом может
00:04:20
принимать все что угодно в нашем случае
00:04:21
это username пользователя После чего мы
00:04:24
вызываем функцию Set которая работает
00:04:26
очень похожим образом сет стоит в react
00:04:29
и туда Передаем уже новый массив
00:04:31
пользователей в который мы в конец
00:04:33
добавляем Новый объект то здесь никакой
00:04:36
магии нет Все элементарно просто но
00:04:38
Обратите внимание typescript при этом
00:04:40
ругается потому что нигде явно схему
00:04:43
нашего стоит а мы не определили для того
00:04:45
чтобы эта проблема ушла мы создаем либо
00:04:47
интерфейс либо тип в котором описыва это
00:04:50
как раз схему наших данных в том числе с
00:04:52
функциями с экшенами которые эти данные
00:04:54
изменяют и при создании самого стора мы
00:04:58
уже указываем этот интерфейс или тип как
00:05:00
дженерик и таким образом автокомплит и
00:05:03
typescript будет работать нормально
00:05:05
данные вытаскиваются из самого стора
00:05:07
максимально легко дергаем хук который
00:05:09
нам генерируется после вызова функции
00:05:12
Create и достаем оттуда нужные данные
00:05:14
при этом внутрь хука мы Передаем
00:05:17
селектор похожим образом как мы делаем
00:05:19
Это в редаксе передавая его в US
00:05:22
селектор При этом селекторы могут быть
00:05:24
сложные не просто вытащить какое-то поле
00:05:26
и Также хотелось бы их переиспользовать
00:05:28
Поэтому селекторы можно вынести прямо в
00:05:30
отдельные файлы Также можно вытащить
00:05:33
весь стейт целиком вот таким вот образом
00:05:35
но здесь важно помнить что у вас будет
00:05:38
перерисовка даже в том случае если у вас
00:05:40
встретя изменилось поле которое в
00:05:43
текущем компоненте не используется про
00:05:45
это важно помнить Ну и далее работаем
00:05:48
уже с обычным javas мы создаем хендлер
00:05:50
который мы вешаем на кнопку и с помощью
00:05:53
mappatерируемся по массиву пользователей
00:05:55
и отрисовываем айдишник и username то
00:05:57
есть ну здесь все как обычно здесь тоже
00:05:59
достаточно важный момент что typescript
00:06:01
работает как надо для State А типа
00:06:03
вводится автоматически потому что мы
00:06:05
выше его там функцию Great передали Ну и
00:06:07
работает это вот таким образом нажимаем
00:06:09
на кнопку У нас добавляется новый
00:06:10
пользователь
00:06:12
совсем хроничная ситуация примерно такая
00:06:15
же ничего особого здесь делать не надо
00:06:17
не нужны никакие Саги фанки мы просто
00:06:19
создаем прям здесь же функцию отправляем
00:06:22
запрос и с этим данные наш State и на
00:06:25
этом в принципе все ну и потом уже как
00:06:28
обычную функцию используем можем без
00:06:30
эффекте можем при нажатии на кнопку
00:06:31
можем еще на какое-либо действие эту
00:06:34
функцию вызвать если на текущем этапе мы
00:06:36
откроем приложение то мы увидим что
00:06:38
список из 10 пользователей у нас
00:06:39
подгрузился и в конец успешно
00:06:41
добавляются юзеры при этом Обратите
00:06:43
внимание стоит мы напрямую не изменяем
00:06:45
как бы возвращаем новый массив
00:06:47
пользователей в него разворачиваем
00:06:49
старый в конец добавляем уже нового
00:06:51
пользователя То есть это классический
00:06:53
редакс подход самутабельностью как мы
00:06:56
делаем редюсерах но хотелось бы немного
00:06:58
упростить себе жизнь и делать как то так
00:07:00
не менять весь массив пользователей
00:07:02
что-то там в конец добавлять а просто
00:07:04
вызвать метод Push уже у существующего
00:07:06
массива и просто добавить Новый объект
00:07:08
как это делается в редак стул кит и
00:07:11
думаю ребята Попро они знают что в редак
00:07:13
стул Кит это достигается за счет
00:07:15
библиотеки имир которая как раз вот этот
00:07:17
стоит делает мутабельным и здесь она
00:07:20
подключается очень легко достаточно
00:07:21
обернуть вот этот наш калбек в функцию
00:07:25
emer И тогда все у нас начинает работать
00:07:27
мы можем изменять стоит напрямую но
00:07:30
здесь Обратите внимание необходимо
00:07:31
воспользоваться каррированием то есть мы
00:07:33
вызываем функцию Create в нее ничего не
00:07:36
Передаем и вызываем еще раз и уже туда
00:07:39
Передаем как раз вот эти вот все
00:07:41
мидоваренные функции которые мы будем
00:07:44
подключать Это необходимо для корректной
00:07:46
работы тайп скрипта Ну и само собой
00:07:48
Разумеется сам и мир не забываем
00:07:51
импортировать также одним из преимуществ
00:07:53
редакса всегда был удобный инструмент
00:07:56
для того чтобы следить Как изменяется
00:07:58
стоит в какой момент времени за счет
00:08:01
какого экшена здесь разработчики не
00:08:03
стали изобретать велосипеды и
00:08:05
воспользовались чем правильно
00:08:07
редаксовским дефту узором Мы также
00:08:09
Добавляем еще одну Middle Warrior вот
00:08:11
таким вот образом начинается
00:08:13
отслеживание в дефтулзах текущего стора
00:08:15
то есть обычное расширение для дев туза
00:08:18
для Хрома Как видите здесь отображается
00:08:20
State если мы что-то добавляем у нас
00:08:22
отрабатывают экшены правда у них
00:08:23
название нет Однако как минимум можно
00:08:25
следить за тем какой у нас стоит и как
00:08:27
он меняется также из коробки Здесь идет
00:08:30
персист который необходим для работы с
00:08:33
данными с сохранением данных думаю
00:08:35
многие из вас этой концепцией знакомы и
00:08:37
работали с тем же редак с персист а для
00:08:40
тех кто не знает Давайте сразу
00:08:41
рассмотрим пример откроем вкладку
00:08:43
Application в тузах хромовских очистим
00:08:45
Local storage видим что он у нас пустой
00:08:48
никаких записей нет и попробуем
00:08:49
поизменять данные видим что у нас сразу
00:08:52
здесь появляется вот такая вот запись
00:08:53
юзер Store и при этом Local storage у
00:08:56
нас сохраняется с текущей версии
00:08:58
актуальный стейт который после
00:09:00
перезагрузки страницы у нас никуда не
00:09:02
пропадет это удобно Если мы хотим
00:09:04
например показать какую-нибудь модалку с
00:09:07
тем что пользователю необходимо оплатить
00:09:09
счет Иначе мы что-то у него приостановим
00:09:11
и мы хотим сделать это только один раз
00:09:13
мы добавляем стоит какой-нибудь флажок
00:09:15
boolean после того как модалку мы
00:09:17
показали мы его поменяли Натру персист
00:09:19
это сохранили и как бы забываем про это
00:09:21
то есть вот таким вот образом мы данные
00:09:23
можем куда-то сохранять но важно при
00:09:25
изменениях в стойте эти данные
00:09:27
версионировать То есть получается своего
00:09:29
рода миграция со старых данных на новые
00:09:32
данные Ну и как я уже сказал данный
00:09:35
подход с мультисторами хорошо
00:09:36
вписывается в модульную архитектуру один
00:09:39
из подходов который я рассматривал в
00:09:41
своем ролике про архитектуры современных
00:09:44
фронтенд приложений ссылка на который
00:09:46
сейчас всплывет в подсказки то есть мы
00:09:49
получаем то что у нас для каждого модуля
00:09:51
свой Store например для работы с
00:09:53
комментариями для работы с
00:09:55
пользователями для работы с настройками
00:09:56
и так далее и на этом все друзья Вот
00:09:59
такой вот краткий но тем не менее
00:10:01
полноценный обзорчик у нас получился
00:10:03
пиши в комментарии что ты думаешь об
00:10:05
этом стоит менеджере вытеснит ли он со
00:10:07
временем редаксили появится что-то новое
00:10:09
более удобное также пиши в комментарии
00:10:11
если наш ролик по rectquery запишу прям
00:10:14
подробный Ну и напоследок как обычно за
00:10:16
старание Попрошу тебя поставить лайк
00:10:18
написать комментарий в поддержку но я в
00:10:21
свою очередь пойду делать следующее
00:10:22
видео

Описание:

В этом ролике мы рассмотрим стейт менеджер в React Zustand, который активно набирает популярность. Мой курс "Продвинутый Frontend. В production на React" - https://ulbitv.ru/frontend Плейлист с роликами по архитектуре - https://www.youtube.com/playlist?list=PL6DxKON1uLOFP5_VPhy6BCE7DA0jdzWO5 Поддержать меня и мой канал вы можете по ссылкам ниже. Patreon/boosty (доступ к бонусам) - https://boosty.to/ulbitv Qiwi кошелек - https://qiwi.com/n/BODYE821 Яндекс деньги - https://yoomoney.ru/to/4100116193037469

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Zustand и React query. State management в React без боли"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Zustand и React query. State management в React без боли" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Zustand и React query. State management в React без боли"?mobile menu icon

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

mobile menu iconКак скачать видео "Zustand и React query. State management в React без боли" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Zustand и React query. State management в React без боли"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Zustand и React query. State management в React без боли"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.