Типизация для Redux Toolkit

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 พ.ค. 2022
  • TypeScript для Redux Toolkit - как повышение надежности React-приложения. RTK и React-Redux написаны на TypeScript, а официальная документация дает нам отличные примеры лучших практик для использования в собственных приложениях.
    Ссылки из видео:
    Код из видео github.com/michey85/rtk-ts
    Оригинальный проект github.com/michey85/redux-too...
    Мои курсы по вебу с купонами:
    ✅ mishanep.com/
    📢 Поддержка канала:
    / mishanep
    www.tinkoff.ru/rm/nepomnyasch...
    paypal.me/mishanep

ความคิดเห็น • 75

  • @karenm.944
    @karenm.944 2 ปีที่แล้ว +12

    Качественный контент, которого так не хватает. Спасибо за проделанную работу!

  • @olegsh2888
    @olegsh2888 2 ปีที่แล้ว +3

    Контент по заявкам подъехал)) Спасибо, Михаил! Отлично!

  • @nickolz1091
    @nickolz1091 2 ปีที่แล้ว +1

    Спасибо. Коротко и всё по теме, то что нужно!

  • @edqars
    @edqars 2 ปีที่แล้ว +12

    Спасибо за видео! Очень жду материал по типизации AsyncThunk

  • @user-ue7lj2to9q
    @user-ue7lj2to9q 2 ปีที่แล้ว +1

    Спасибо. Качество контента как всегда на высоте.

  • @annashirinskaya7400
    @annashirinskaya7400 ปีที่แล้ว

    Большое спасибо за ваши уроки!
    Очень понятно и структурированно объясняете, очень приятно у вас учиться!

  • @user-nc1nl8ph2s
    @user-nc1nl8ph2s ปีที่แล้ว +3

    спасибо за подачу и нужный материал! желаю развития вашему каналу!

  • @homesergei1801
    @homesergei1801 2 ปีที่แล้ว +1

    Спасибо. Вы лучший!!!
    Ждём следующего видео.

  • @user-on1gr2pm1v
    @user-on1gr2pm1v 2 ปีที่แล้ว +32

    Спасибо за контент по тайпскрипту, как раз начал на нем писать. Хотелось бы ещё увидеть типизацию AsyncThunk и библиотеку axios.

    • @enmaboya
      @enmaboya 2 ปีที่แล้ว +2

      у axios типизация из коробки

  • @aleksandrshturm1092
    @aleksandrshturm1092 6 หลายเดือนก่อน +3

    Лучший ру контент по js и прочим ! Очень круто объясняете ! Спасибо

  • @user-xf6jn9wc7d
    @user-xf6jn9wc7d ปีที่แล้ว

    Очень достойный контент, благодарю от всей души за такую работу

  • @learningit2572
    @learningit2572 ปีที่แล้ว +6

    Вся Благодарность в Мире адресована вам))
    почему то мне очень заходит ваше объяснения. Большое при большое человеческое спасибо.

  • @WanKy182
    @WanKy182 2 ปีที่แล้ว +9

    Спасибо , информативно. Было бы интересно ещё увидеть добавление asyncThunk, EntityAdapter, rtk Query - с тайпскриптом конечно)

  • @artyomsultanov5204
    @artyomsultanov5204 2 ปีที่แล้ว

    Спасибо! Очень круто объясняешь! Удачи!

  • @user-vm2db5cq1g
    @user-vm2db5cq1g ปีที่แล้ว +1

    Отличный контент! Автору спасибо!

  • @fgsxdfdsqwrwerwerw7556
    @fgsxdfdsqwrwerwerw7556 2 ปีที่แล้ว +1

    Как же ты вовремя поднял эту тему, только начал ts учить. Нужно больше ts

  • @nijy001
    @nijy001 2 ปีที่แล้ว +1

    Спасибо за видео! как раз учу ТС) и тут такое...) Спасибо!

  • @user-ko4cs2qu5e
    @user-ko4cs2qu5e ปีที่แล้ว

    Спасибо! Супер контент, аналогов почти нет. Недавно начала смотреть ваши видео, очень нравится!

  • @user-tu8vs3ek2q
    @user-tu8vs3ek2q ปีที่แล้ว

    Спасибо, Михаил, очень нужное видео, сильно помогло

  • @andrewsam224
    @andrewsam224 ปีที่แล้ว

    Круто!!! Когда прям указываешь на сколько важна типизация и как именно она помогает!!! После слов:вот здесь мы не ошибёмся никогда, имелось ввиду автодополнение. Прям по-другому посмотрел на Typescript.

  • @user-rp8oy2kf5d
    @user-rp8oy2kf5d 2 ปีที่แล้ว

    Очень в кассу. Полезно про типизацию

  • @styxrus
    @styxrus 2 ปีที่แล้ว +4

    Спасибо, Михаил, за материал! Очень хорошая подача, доступно объясняешь.

    • @user-fn4jw5nc3z
      @user-fn4jw5nc3z ปีที่แล้ว +3

      Честно говоря когда я слушаю большинство программистов, которые что то объясняют, удивляюсь почему они говорят так сложно, ведь все тоже самое можно сказать проще не теряя в смысле. Михаилу спасибо большое.

    • @andrewsam224
      @andrewsam224 ปีที่แล้ว

      Прям, в точку Михаил. После просмотров некоторых неудачных видосов у других людей, когда мозг сначала закипает а потом => засыпает.

  • @pashasergiychuk8854
    @pashasergiychuk8854 2 ปีที่แล้ว

    Только искал контент про типизацию тулкитов, Спасибо!

  • @sergsergey4251
    @sergsergey4251 2 ปีที่แล้ว +1

    Спасибо за очередное полезное видео

  • @sergeysamius1128
    @sergeysamius1128 2 ปีที่แล้ว

    Большое спасибо! отличное видео!

  • @anton4422
    @anton4422 5 หลายเดือนก่อน

    Отличный урок, большое спасибо

  • @garik0220
    @garik0220 2 ปีที่แล้ว

    Спасибо! Жду видео про RTK query, тоже с типизацией)

  • @egor.illjin
    @egor.illjin 2 ปีที่แล้ว

    Огонь, спасибо! Мне как нельзя кстати)

  • @andys9810
    @andys9810 ปีที่แล้ว

    Очень недооцененный канал. Всё толково, всё по делу.

  • @user-ys3uu5un6l
    @user-ys3uu5un6l 8 หลายเดือนก่อน

    Спасибо Михаил!

  • @nizom333
    @nizom333 2 ปีที่แล้ว

    Спасибо отличный контент делайте

  • @o_antushevich
    @o_antushevich ปีที่แล้ว

    Отличное видео! спасибо!

  • @vladimirrezvanov8276
    @vladimirrezvanov8276 2 ปีที่แล้ว

    Ты лучший! Спасибо!

  • @andrewsam224
    @andrewsam224 ปีที่แล้ว

    От души Миша!!! Спасибо.

  • @user-fn4jw5nc3z
    @user-fn4jw5nc3z ปีที่แล้ว

    Большое спасибо👍👍👍👍👍👍👍👍👍

  • @user-fl2qf6ye4b
    @user-fl2qf6ye4b ปีที่แล้ว

    Даражэнькі Міхаіл, дзякуй вам вялікі за такі цудоўны кантэнт! праз вашы відэа я ў большасці зразумела redux toolkit! 💋💋💋

    • @user-th4qi8iv3q
      @user-th4qi8iv3q ปีที่แล้ว +1

      на русском пиши

    • @user-fl2qf6ye4b
      @user-fl2qf6ye4b ปีที่แล้ว

      ​@@user-th4qi8iv3q навошта?

    • @alexvav2161
      @alexvav2161 ปีที่แล้ว

      @@user-th4qi8iv3q тоді краще на енгліш

  • @boburmustafo8868
    @boburmustafo8868 ปีที่แล้ว

    ochen kruta spasibo

  • @user-kn3ut1sh2o
    @user-kn3ut1sh2o 2 ปีที่แล้ว

    Спасибо! (Типизация для Redux Toolkit)

  • @happyhomo4423
    @happyhomo4423 2 ปีที่แล้ว

    классное видео, ждем createAsynkThunk!

  • @AirdropLuck
    @AirdropLuck 2 ปีที่แล้ว +1

    тупа подарок

  • @maga_frank
    @maga_frank ปีที่แล้ว

    В интерфейсе на 17:30 для updateText указал тип React.Dispatch вместо (str: string) => void, и работает также без ошибок

  • @PeterTeslenko
    @PeterTeslenko 5 หลายเดือนก่อน

    У Вас есть видео про переезд на RTK 2, но там Вы рассматриваете только js, можете рассказать, что меняется в контексте ts?

  • @user-fv4xc4qp2h
    @user-fv4xc4qp2h 2 ปีที่แล้ว +2

    А можно создание селекторов вынести в отдельный файл, чтобы наши компоненты ничего не знали про устройство стейта и тогда можно писать const todos = useSelector(selectTodos); Не создавая дополнительного хука

    • @mishanep
      @mishanep  2 ปีที่แล้ว

      Да, конечно можно в отдельном файле, но лучше с дополнительным хуком))

  • @c4973
    @c4973 ปีที่แล้ว

    Михаил, подскажите, пожал., открытую API для получения названий и описаний статей на 100 символов, а при открытии - полная статья 😇 Очень нужно для тестового!

  • @Ksushapi
    @Ksushapi 7 หลายเดือนก่อน +1

    Михаил, я заметила, что иногда для типизации объектов вы используете type, а иногда interface. Есть ли какое-то правило когда что использовать. Например, пропсы типизируем через interface, а, скажем, обьект с данными о пользователе через type. Тот же стейт вы типизируете через type, но я часто встречаю, что это делают через interface. Или это не суть важно?

    • @mishanep
      @mishanep  7 หลายเดือนก่อน +1

      По факту это вопрос предпочтений. Когда нужно объединять несколько объектных типов, многим нравятся интерфейсы. Но того же можно добиться и с алиасами типов. Разница будет если писать интерфейсы для классов. Но если ими не пользоваться, можно обойтись одними алиасами типов.

    • @Ksushapi
      @Ksushapi 7 หลายเดือนก่อน

      @@mishanep Спасибо, Михаил, что всегда отвечаете на вопросы. Это очень ценно)

  • @user-jc3ke6zf2k
    @user-jc3ke6zf2k 2 ปีที่แล้ว

    Здраствуите у меня хуки appDispatch , appSelector реакт говорить нельзя использовать на верхнем уровне нужно или на реакт компоненте вызывать или на кастом хук функции

    • @user-jc3ke6zf2k
      @user-jc3ke6zf2k 2 ปีที่แล้ว +1

      Все все решил я просто забыл в функцию обернуть юздиспатч спасибо за видео

  • @semen083
    @semen083 ปีที่แล้ว

    Как Вы определяете, в каких случаях тип надо задавать через Type, а в каких через Interface?

    • @mishanep
      @mishanep  ปีที่แล้ว +1

      В большинстве случае определяет style guide на проекте =)
      По большому счету, если вы не пишете библиотеку общего пользования и не используете интерфейсы для типизации классов, можно всегда обходиться алиасами.

  • @TheGramaboi
    @TheGramaboi ปีที่แล้ว

    Привет! Если хочу в Акшон передать объект что в место стринга писать?

    • @mishanep
      @mishanep  ปีที่แล้ว

      Тип объекта

  • @user-wq9gc4rj3w
    @user-wq9gc4rj3w 5 หลายเดือนก่อน

    Очень правильно посреди настройки бросить её и начать писать кастомные хуки. (нет)

  • @user-zy9ng5be4g
    @user-zy9ng5be4g 2 ปีที่แล้ว

    Спасибо за интересное видео! Однако не совсем понятно, зачем при создании store нужно изобретать велосипед, когда разработчики rtk уже все сделали за нас: 1. Можно стартануть проект с шаблоном ts. 2. Можно зайти в соответствующий раздел официальной доки и скопипастить.

    • @mishanep
      @mishanep  2 ปีที่แล้ว

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

    • @user-zy9ng5be4g
      @user-zy9ng5be4g 2 ปีที่แล้ว

      @@mishanep Я о том, что типизация стора в rtk идёт из коробки. Можно было это показать, а не писать руками, чтобы у новичков не создавалось ощущения, что разработчики rtk опять усложняют свой продукт )

    • @mishanep
      @mishanep  2 ปีที่แล้ว +1

      Что значит из коробки? Если речь про готовые темплейты, которые можно ставить с create-react-app, то это не всегда актуально. Редакс часто добавляется в уже существующий проект по хожу жизненного цикла. Да и не каждый проект в принципе через эту утилиту создается.

  • @DENISUKgamer
    @DENISUKgamer 2 ปีที่แล้ว

    Мысли читаете))

  • @user-vq4cv3xf9z
    @user-vq4cv3xf9z 2 ปีที่แล้ว

    Это всегда так было или это новый способ?

    • @mishanep
      @mishanep  2 ปีที่แล้ว

      О чем конкретно вопрос-то?)

  • @d0paminer
    @d0paminer 2 ปีที่แล้ว

    +++

  • @vroshupkin1
    @vroshupkin1 4 หลายเดือนก่อน

    Ага типизируешь useDispatch, а в его использовании он всеравно остается any. Какой тогда смысл, кроме того, что код чуть читаемее становится? 1.5 часа голову ломал, как протипизировать его, а на деле оказывается все это так используют

  • @trendsgallery
    @trendsgallery 11 หลายเดือนก่อน

    Почему в новой документации RTK нет никакой абсолютно информации про хук useAppSelector ? А в старой есть!! То есть они оставили useAppDispatch, а инфу про useAppSelector выпилили.
    Это почему так произошло?
    Какое же говно непонятное все эти документации.

    • @trendsgallery
      @trendsgallery 11 หลายเดือนก่อน

      В новой документации Redux Toolkit есть информация о другом хуке, который заменяет `useAppSelector`. Это новый хук `useSelector` из библиотеки `@reduxjs/toolkit`.
      В старых версиях Redux Toolkit, хук `useSelector` принадлежал пакету `react-redux` и требовал явного указания типа состояния (`RootState`). Однако, начиная с версии 7.1.0 Redux Toolkit, этот хук был включен непосредственно в саму библиотеку Redux Toolkit и новая документация больше не упоминает `useAppSelector`.
      Теперь, вместо `useAppSelector`, использование рекомендуется просто вызывать `useSelector` из `@reduxjs/toolkit`, так как он автоматически будет знать о типе состояния. Необходимость в типизации (`TypedUseSelectorHook`) уже встроена в новый `useSelector`.
      В итоге, если вы используете новую версию Redux Toolkit, можно просто использовать `useSelector` без необходимости в явном указании типа состояния.

    • @pickun1524
      @pickun1524 5 หลายเดือนก่อน

      @@trendsgallery Что за бред? Это Чат ГТП высрал?

  • @vladimircreator
    @vladimircreator 8 หลายเดือนก่อน

    ГОЙДА!

  • @user-lz5mb5nj2r
    @user-lz5mb5nj2r 2 ปีที่แล้ว +1

    Спасибо за видео! У меня возникла ошибка The above error occurred in the component:
    at Provider (localhost:3000/static/js/bundle.js:3918:5)
    Consider adding an error boundary to your tree to customize error handling behavior.
    Cannot read properties of null (reading 'useMemo')
    at useMemo (react.development.js:1650:1)
    at Provider (Provider.js:12:1)
    Возможно не та версия react-redux Помогите пж