Reselect для оптимизации Redux стора

  Рет қаралды 21,102

Михаил Непомнящий

Михаил Непомнящий

Күн бұрын

Пікірлер: 64
@TheMaxfri
@TheMaxfri 2 жыл бұрын
Михаил, спасибо большое за ваши видео. Было бы интересно послушать про продвинутый rtk query, отлавливание ошибок и с чем ещё можно столкнуться в реальной работе.
@artman9592
@artman9592 2 жыл бұрын
Тоже интересно
@andrewsam224
@andrewsam224 Жыл бұрын
Да про ошибки было бы круто, тоже завис на этой теме!!!!
@olegsh2888
@olegsh2888 2 жыл бұрын
За Redux Toolkit всегда лайк! Забавно, что именно сегодня на кодревью получил замечание, что надо переписать на createSelector свой код)) Так что, можно сказать, что это не просто теория, а вполне себе рабочая задача)
@andrewsam224
@andrewsam224 Жыл бұрын
Как я Вам благодарен Михаил!!!
@vladimirplyukhin5234
@vladimirplyukhin5234 2 жыл бұрын
Михаил, спасибо вам! Вы стали уже как наставник мне! Потому что живя в сельской местности, нет особой возможности покупать платные курсы. А вы очень хорошо объясняете и помогаете тем самым незаменимо! Как устроюсь на джуна, обязательно куплю у вас курсы на Udemy в знак благодарности!
@localhost666
@localhost666 Жыл бұрын
Устроился?
@vladimirplyukhin5234
@vladimirplyukhin5234 Жыл бұрын
@@localhost666 Уже да, но ищу дальше
@localhost666
@localhost666 Жыл бұрын
@@vladimirplyukhin5234 обещание сдержал?
@vladimirplyukhin5234
@vladimirplyukhin5234 Жыл бұрын
@@localhost666 ахахаха мэни, ты что здесь как интернет-совесть? Но да, есть там неплохой курс по Redux.
@localhost666
@localhost666 Жыл бұрын
@@vladimirplyukhin5234 неблагодарный
@mykhailo_shokun
@mykhailo_shokun 2 жыл бұрын
Красава как всегда!
@АнатолийГорбов-о1ь
@АнатолийГорбов-о1ь Жыл бұрын
Отличный контент! Автору спасибо!
@НиколайВ-ю3о
@НиколайВ-ю3о 2 жыл бұрын
Михаил очень понравился Ваш курс по Redux, ждем курс по TS)
@TRIZ-Bogatyregold
@TRIZ-Bogatyregold Жыл бұрын
Михаил спасибо за видео. Полезный контент redux reselect!
@fpssk4
@fpssk4 2 жыл бұрын
Спасибо, Михаил 😌
@KGMelis
@KGMelis 2 жыл бұрын
Михаил, спасибо большое! благодаря вашего контента токо понял весь прелесть тулкита и слайсов
@ВячеславКузнецов-ъ3щ
@ВячеславКузнецов-ъ3щ 2 жыл бұрын
Классное объяснение. Спасибо!
@nizom333
@nizom333 2 жыл бұрын
Спасибо отличный видео
@Дима-п7х6л
@Дима-п7х6л 2 жыл бұрын
Большое спасибо! отличное видео
@bagga_lev
@bagga_lev 2 жыл бұрын
Большое спасибо =) Очень хорошо объясняете
@КириллМохначевский-о3ю
@КириллМохначевский-о3ю 2 жыл бұрын
Михаил, снимите, пожалуйста, видео про обработку ошибок - как лучше отображать пользователю, что некий запрос не сработал - может какой-нибудь попап в углу экрана для общих случаев, и отдельно для частных. + Очень хочется видео про мульти запросы на API (наверное есть возможность через редакс или по старинке циклом по массиву)
@dispeltr1183
@dispeltr1183 2 жыл бұрын
для отображений ошибок юзеру есть либа react-toastify. Про мульти запросы посмотри в сторону Promise.all и Promise.race
@ОлегПетров-п4у
@ОлегПетров-п4у 2 жыл бұрын
Спасибо, было полезно! (Reselect)
@dirty_arkady
@dirty_arkady 2 жыл бұрын
Спасибо!
@alexleshenko
@alexleshenko Жыл бұрын
Только подумал, а че я ресилект забыл в своем проекте и видос выскочил, значит мысль верна 😂😂
@maksymkyryliuk492
@maksymkyryliuk492 2 жыл бұрын
Михаил, прекрасное видео Но у меня вопрос как можно добавить к тулкиту Redux-Axios-Middleware сколько смотрел документацию не нашел этого, просто это было бы очень полезно если хочешь Interceptor к запросам сделать
@---Maksim---
@---Maksim--- 2 жыл бұрын
А что там сложного? Создаешь отдельно service с конфигом interceptor-а для axios, вместо fetch-а юзаешь свой service в slice.
@maksymkyryliuk492
@maksymkyryliuk492 2 жыл бұрын
@@---Maksim--- Хмм... Спасибо, надо попробовать👍🏻
@alexvoid8717
@alexvoid8717 2 жыл бұрын
Для меня после прочтения документации редакса осталась не вполне понятной тема размера кэша. В документации редакса рекомендуют передавать id в качестве пропсов и в потомке селектором доставать данные сущности (если без rtk query), в react-redux доке: when the selector is used in multiple component instances and depends on the component's props, you need to ensure that each component instance gets its own selector instance. В случае, если передаем только id, а потом выбираем по id, нужно создавать factory function?
@johndoe034
@johndoe034 2 жыл бұрын
Михаил, спасибо за отличный контент! Есть пара вопросов, буду благодарен за ответ: 1. Насколько сейчас распространена практика использования Redux Toolkit в коммерческих проектах по сравнению с обычным Redux? 2. Насколько актуальными остаются саги в связи с популярностью Redux Toolkit, в котором Thunk идет из коробки?
@mishanep
@mishanep 2 жыл бұрын
С сагами мне в принципе не доводилось работать, поэтому сложно ответить на этот вопрос. Они решают много задач и уже по проекту надо смотреть актуальность использование этого дополнения к редаксу. Касаемо тулкита, то он всё чаще и чаще встречается в свежих проектах. Легаси, конечно, не спешит переезжать на современные рельсы, но тулкит намного актуальнее. С ним проще работать и он очевиднее типизируется.
@MrMomomoy
@MrMomomoy 2 жыл бұрын
Михаил, спасибо за очередное отличное видео. Скажите пожалуйста, не планируете ли снять видео на тему вебсокетов?
@mishanep
@mishanep 2 жыл бұрын
Здравствуйте. Про вебсокеты пока не планирую. Почти не имел с ним дела в реальной практике.
@MrMomomoy
@MrMomomoy 2 жыл бұрын
@@mishanep , понял. не сочтите за наглость, но может снимете видео про Firebase авторизацию с помощью гугла, или соцсетей? Думаю, многим будет эта тема интересна
@СергейЛушкин-н8л
@СергейЛушкин-н8л 2 жыл бұрын
@@MrMomomoy Так уже Михаил снимал такое видео)
@vitya.obolonsky
@vitya.obolonsky Жыл бұрын
Так а причем тема к активному фильтру? Rerender не должен бить. При отправке действия useSelector() выполняется эталонное сравнение предыдущего значения результата селектора и текущего значения результата. Если они разные, компонент будет вынужден выполнить повторный рендеринг.
@kruboy1605
@kruboy1605 2 жыл бұрын
молодець!
@artman9592
@artman9592 2 жыл бұрын
спасибо
@romeshfarhod-zoda8892
@romeshfarhod-zoda8892 2 жыл бұрын
красава
@romanmed9035
@romanmed9035 2 жыл бұрын
вот вообще непонятно в какой момент что сделано что стало совсем не так. ибо альтернативес было и перерендеривалось, а потом убрали и оно стало все хорошо. а на саму суть ушло пара секунд.
@nizom333
@nizom333 2 жыл бұрын
TOP
@kosechok1
@kosechok1 2 жыл бұрын
Михаил, спасибо подскажите а как все это будет в случае если список подгружается через апи? у меня получается что функция начинает применяться раньше чем происходит асинхронный thunk?
@mishanep
@mishanep 2 жыл бұрын
Приветствую, Константин. Reselect ничего не знает про санки. Если значение в сторе изменилось, то оно обновится и в UI. Возможно вы меняете значение в момент запроса, а потом повторно - уже при получении данных.
@kosechok1
@kosechok1 2 жыл бұрын
@@mishanep я понимаю, что он не знает. Просто он начинает выполняться до того как данные успевают поступить в стор. Что-то не с работой с промисом. По этому интересно было бы посмотреть на ваш урок
@alexvoid8717
@alexvoid8717 2 жыл бұрын
@@kosechok1 селекторы запускаются при каждом диспатче в стор, если я правильно понял вопрос (useSelector() will also subscribe to the Redux store, and run your selector whenever an action is dispatched). Санки, созданные через createAsyncThunk, диспатчат .pending/.fulfilled/.rejected
@Капитангрез
@Капитангрез 2 жыл бұрын
Кто нибудь знает как мемоизировать отдельное значение из Redux? Все функции со стейтом я с помощью reselect реализовал, но отдельные значения все равно вызывают ререндер?
@КириллМохначевский-о3ю
@КириллМохначевский-о3ю 2 жыл бұрын
Перенёс селекторы)
@ssurrokk
@ssurrokk 2 жыл бұрын
спасибо . Как называется плагин который выделяет блоки кода у тебя?
@mishanep
@mishanep 2 жыл бұрын
Приветствую. Не совсем понимаю о каком конкретно выделении идет речь.
@ssurrokk
@ssurrokk 2 жыл бұрын
@@mishanep когда блок выбираешь, то рисуется линия влево и вниз, выделяя таким образом его
@dmitry7464
@dmitry7464 2 жыл бұрын
useSelector проверяет ссылки и они у вас каждый раз новые, кто-нибудь. разбирался как это работает внутри?
@dmitry7464
@dmitry7464 2 жыл бұрын
Reselect checks for changes using reference equality (===). This means that you have to respect the Redux expectation that your store’s properties are immutable. If your reducers modify some data within the state.items array without returning a new object reference, the selector will not detect a new argument, and you will receive a cached item when you expect to receive the newest one.
@mishanep
@mishanep 2 жыл бұрын
Там есть вариант сравнения по дефолту, но при желании можно собственный алгоритм предложить.
@ЮрийДонников
@ЮрийДонников 2 жыл бұрын
плохо что без тайпскрипта
@iGotton
@iGotton 2 жыл бұрын
+
@lesters
@lesters Жыл бұрын
я думаю еще стоило упомянуть что createSelector нельзя использовать в самих редьюсерах
@disconnect-forever
@disconnect-forever 2 жыл бұрын
Спасибо, было полезно!
@yaroslavom
@yaroslavom 2 жыл бұрын
Спасибо )
@morph2049
@morph2049 2 жыл бұрын
спасибо
Базовое тестирование Redux-приложения
14:15
Михаил Непомнящий
Рет қаралды 9 М.
Типизация для Redux Toolkit
22:24
Михаил Непомнящий
Рет қаралды 43 М.
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН
Reselect не так прост как кажется!
15:41
АйТи Синяк
Рет қаралды 13 М.
Синхронизация Redux и localStorage с redux-persist
14:05
Михаил Непомнящий
Рет қаралды 37 М.
React мемоизация - useCallback, useMemo, memo
31:02
ТОП 6 ОШИБОК ПРИ РАБОТЕ С Redux Toolkit
22:53
Ayub Begimkulov
Рет қаралды 12 М.
Новые хуки useTransition и useDeferredValue в React 18
22:17
Михаил Непомнящий
Рет қаралды 23 М.
Асинхронная работа с Redux Toolkit и createAsyncThunk
42:24
Михаил Непомнящий
Рет қаралды 108 М.
Делюсь опытом по использованию reselect
8:23
АйТи Синяк
Рет қаралды 10 М.
Автоматизация создания React-компонентов
14:36
Михаил Непомнящий
Рет қаралды 21 М.
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН