Михаил, спасибо большое за ваши видео. Было бы интересно послушать про продвинутый rtk query, отлавливание ошибок и с чем ещё можно столкнуться в реальной работе.
@artman95922 жыл бұрын
Тоже интересно
@andrewsam224 Жыл бұрын
Да про ошибки было бы круто, тоже завис на этой теме!!!!
@olegsh28882 жыл бұрын
За Redux Toolkit всегда лайк! Забавно, что именно сегодня на кодревью получил замечание, что надо переписать на createSelector свой код)) Так что, можно сказать, что это не просто теория, а вполне себе рабочая задача)
@andrewsam224 Жыл бұрын
Как я Вам благодарен Михаил!!!
@vladimirplyukhin52342 жыл бұрын
Михаил, спасибо вам! Вы стали уже как наставник мне! Потому что живя в сельской местности, нет особой возможности покупать платные курсы. А вы очень хорошо объясняете и помогаете тем самым незаменимо! Как устроюсь на джуна, обязательно куплю у вас курсы на Udemy в знак благодарности!
@localhost666 Жыл бұрын
Устроился?
@vladimirplyukhin5234 Жыл бұрын
@@localhost666 Уже да, но ищу дальше
@localhost666 Жыл бұрын
@@vladimirplyukhin5234 обещание сдержал?
@vladimirplyukhin5234 Жыл бұрын
@@localhost666 ахахаха мэни, ты что здесь как интернет-совесть? Но да, есть там неплохой курс по Redux.
@localhost666 Жыл бұрын
@@vladimirplyukhin5234 неблагодарный
@mykhailo_shokun2 жыл бұрын
Красава как всегда!
@АнатолийГорбов-о1ь Жыл бұрын
Отличный контент! Автору спасибо!
@НиколайВ-ю3о2 жыл бұрын
Михаил очень понравился Ваш курс по Redux, ждем курс по TS)
@TRIZ-Bogatyregold Жыл бұрын
Михаил спасибо за видео. Полезный контент redux reselect!
@fpssk42 жыл бұрын
Спасибо, Михаил 😌
@KGMelis2 жыл бұрын
Михаил, спасибо большое! благодаря вашего контента токо понял весь прелесть тулкита и слайсов
@ВячеславКузнецов-ъ3щ2 жыл бұрын
Классное объяснение. Спасибо!
@nizom3332 жыл бұрын
Спасибо отличный видео
@Дима-п7х6л2 жыл бұрын
Большое спасибо! отличное видео
@bagga_lev2 жыл бұрын
Большое спасибо =) Очень хорошо объясняете
@КириллМохначевский-о3ю2 жыл бұрын
Михаил, снимите, пожалуйста, видео про обработку ошибок - как лучше отображать пользователю, что некий запрос не сработал - может какой-нибудь попап в углу экрана для общих случаев, и отдельно для частных. + Очень хочется видео про мульти запросы на API (наверное есть возможность через редакс или по старинке циклом по массиву)
@dispeltr11832 жыл бұрын
для отображений ошибок юзеру есть либа react-toastify. Про мульти запросы посмотри в сторону Promise.all и Promise.race
@ОлегПетров-п4у2 жыл бұрын
Спасибо, было полезно! (Reselect)
@dirty_arkady2 жыл бұрын
Спасибо!
@alexleshenko Жыл бұрын
Только подумал, а че я ресилект забыл в своем проекте и видос выскочил, значит мысль верна 😂😂
@maksymkyryliuk4922 жыл бұрын
Михаил, прекрасное видео Но у меня вопрос как можно добавить к тулкиту Redux-Axios-Middleware сколько смотрел документацию не нашел этого, просто это было бы очень полезно если хочешь Interceptor к запросам сделать
@---Maksim---2 жыл бұрын
А что там сложного? Создаешь отдельно service с конфигом interceptor-а для axios, вместо fetch-а юзаешь свой service в slice.
@maksymkyryliuk4922 жыл бұрын
@@---Maksim--- Хмм... Спасибо, надо попробовать👍🏻
@alexvoid87172 жыл бұрын
Для меня после прочтения документации редакса осталась не вполне понятной тема размера кэша. В документации редакса рекомендуют передавать 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?
@johndoe0342 жыл бұрын
Михаил, спасибо за отличный контент! Есть пара вопросов, буду благодарен за ответ: 1. Насколько сейчас распространена практика использования Redux Toolkit в коммерческих проектах по сравнению с обычным Redux? 2. Насколько актуальными остаются саги в связи с популярностью Redux Toolkit, в котором Thunk идет из коробки?
@mishanep2 жыл бұрын
С сагами мне в принципе не доводилось работать, поэтому сложно ответить на этот вопрос. Они решают много задач и уже по проекту надо смотреть актуальность использование этого дополнения к редаксу. Касаемо тулкита, то он всё чаще и чаще встречается в свежих проектах. Легаси, конечно, не спешит переезжать на современные рельсы, но тулкит намного актуальнее. С ним проще работать и он очевиднее типизируется.
@MrMomomoy2 жыл бұрын
Михаил, спасибо за очередное отличное видео. Скажите пожалуйста, не планируете ли снять видео на тему вебсокетов?
@mishanep2 жыл бұрын
Здравствуйте. Про вебсокеты пока не планирую. Почти не имел с ним дела в реальной практике.
@MrMomomoy2 жыл бұрын
@@mishanep , понял. не сочтите за наглость, но может снимете видео про Firebase авторизацию с помощью гугла, или соцсетей? Думаю, многим будет эта тема интересна
@СергейЛушкин-н8л2 жыл бұрын
@@MrMomomoy Так уже Михаил снимал такое видео)
@vitya.obolonsky Жыл бұрын
Так а причем тема к активному фильтру? Rerender не должен бить. При отправке действия useSelector() выполняется эталонное сравнение предыдущего значения результата селектора и текущего значения результата. Если они разные, компонент будет вынужден выполнить повторный рендеринг.
@kruboy16052 жыл бұрын
молодець!
@artman95922 жыл бұрын
спасибо
@romeshfarhod-zoda88922 жыл бұрын
красава
@romanmed90352 жыл бұрын
вот вообще непонятно в какой момент что сделано что стало совсем не так. ибо альтернативес было и перерендеривалось, а потом убрали и оно стало все хорошо. а на саму суть ушло пара секунд.
@nizom3332 жыл бұрын
TOP
@kosechok12 жыл бұрын
Михаил, спасибо подскажите а как все это будет в случае если список подгружается через апи? у меня получается что функция начинает применяться раньше чем происходит асинхронный thunk?
@mishanep2 жыл бұрын
Приветствую, Константин. Reselect ничего не знает про санки. Если значение в сторе изменилось, то оно обновится и в UI. Возможно вы меняете значение в момент запроса, а потом повторно - уже при получении данных.
@kosechok12 жыл бұрын
@@mishanep я понимаю, что он не знает. Просто он начинает выполняться до того как данные успевают поступить в стор. Что-то не с работой с промисом. По этому интересно было бы посмотреть на ваш урок
@alexvoid87172 жыл бұрын
@@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ю2 жыл бұрын
Перенёс селекторы)
@ssurrokk2 жыл бұрын
спасибо . Как называется плагин который выделяет блоки кода у тебя?
@mishanep2 жыл бұрын
Приветствую. Не совсем понимаю о каком конкретно выделении идет речь.
@ssurrokk2 жыл бұрын
@@mishanep когда блок выбираешь, то рисуется линия влево и вниз, выделяя таким образом его
@dmitry74642 жыл бұрын
useSelector проверяет ссылки и они у вас каждый раз новые, кто-нибудь. разбирался как это работает внутри?
@dmitry74642 жыл бұрын
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.
@mishanep2 жыл бұрын
Там есть вариант сравнения по дефолту, но при желании можно собственный алгоритм предложить.
@ЮрийДонников2 жыл бұрын
плохо что без тайпскрипта
@iGotton2 жыл бұрын
+
@lesters Жыл бұрын
я думаю еще стоило упомянуть что createSelector нельзя использовать в самих редьюсерах