1. Урок 1.00:03:07
    What is Redux? What's it for?
  2. Урок 2.00:01:58
    Start with a Plain React App
  3. Урок 3.00:10:40
    Add Redux to the React App
  4. Урок 4.00:07:33
    Actions
  5. Урок 5.00:09:36
    How the Reducer Works
  6. Урок 6.00:02:30
    What is Immutability?
  7. Урок 7.00:04:15
    Why Immutability Matters to Redux
  8. Урок 8.00:08:43
    How to Immutably Update Arrays
  9. Урок 9.00:07:15
    How to Immutably Update Objects
  10. Урок 10.00:06:19
    Easier debugging with Redux DevTools
  11. Урок 11.00:10:05
    Make API calls with redux-thunk
  12. Урок 12.00:04:43
    Easy immutability with Immer
  13. Урок 13.00:04:34
    How to Test a Reducer
  14. Урок 14.00:04:45
    How to Test Plain Action Creators
  15. Урок 15.00:10:42
    How to Test Async (thunk) Actions
  16. Урок 16.00:01:28
    Create the OfCourse App
  17. Урок 17.00:10:34
    Use a form to get data into Redux
  18. Урок 18.00:03:16
    Set up an API server
  19. Урок 19.00:06:00
    POST new records with redux-thunk
  20. Урок 20.00:00:48
    Proxy requests to the API server
  21. Урок 21.00:08:43
    Fetch the list of courses
  22. Урок 22.00:13:04
    Add a "New Course" Button
  23. Урок 23.00:04:36
    Add Routing and a CourseDetailPage
  24. Урок 24.00:05:34
    Fetching courses from the server
  25. Урок 25.00:01:12
    Style the CourseDetailPage
  26. Урок 26.00:10:40
    Add Lessons to a Course
  27. Урок 27.00:02:40
    Save Lessons to the Server
  28. Урок 28.00:05:37
    Split the Reducers and Use combineReducer
  29. Урок 29.00:05:32
    Implementing Selectors with reselect
  30. Урок 30.00:01:46
    Exercise Solution - getCourseById selector
  31. Урок 31.00:11:42
    Fetch Lessons when route changes
  32. Урок 32.00:11:02
    Edit Lesson Titles and Persist Them
  33. Урок 33.00:05:18
    Delete Lessons from a Course
  34. Урок 34.00:04:44
    Create LessonPage and link the lessons
  35. Урок 35.00:09:21
    Edit lesson contents as Markdown
  36. Урок 36.00:06:36
    Preview the lesson markdown as HTML
  37. Урок 37.00:01:05
    Fix the Error Handling in api.js
  38. Урок 38.00:08:26
    Create LoginPage, signup and login
  39. Урок 39.00:04:40
    Save the JWT Token with Middleware
  40. Урок 40.00:02:09
    Redirect after login
  41. Урок 41.00:04:36
    Save the user in localStorage
  42. Урок 42.00:05:45
    Logging out, and the LoginLogout button
  43. Урок 43.00:07:56
    Hiding components based on role
  44. Урок 44.00:10:14
    Let users buy courses at the SalesPage
  45. Урок 45.00:01:17
    Introduction
  46. Урок 46.00:03:46
    Use Context to avoid prop drilling
  47. Урок 47.00:03:24
    Allow Children to Update Parents with a callback
  48. Урок 48.00:03:01
    Hide the implementation details of a Provider
  49. Урок 49.00:05:07
    Use Multiple Providers in the Same App
  50. Урок 50.00:01:24
    Use a Consumer Outside the Matching Provider
  51. Урок 51.00:04:05
    Use Context to Display Notifications
  52. Урок 52.00:01:25
    Use contextType to access Context without a Consumer
  53. Урок 53.00:01:22
    Use the useContext Hook to access Context in Function Components
  54. Урок 54.00:04:09
    Performantly Render a Large List with React Context
  55. Урок 55.00:02:35
    Test a Component That Uses a Consumer
  56. Урок 56.00:04:15
    Test a Component That Uses a Provider