课程介绍
通过代码实战工作坊掌握 React 19。面向专业Web开发者的自定进度、代码优先、动手实践的 React 培训。
说明
你准备好迎接React 19的革命了吗?这个最受欢迎的JavaScript框架刚刚进行了重大升级!
React 19中有三个巨大的范式转变,这将改变你的代码(甚至可能是你的生活):
React Suspense和Transitions:告别各种临时解决方案,完全掌控数据加载方式,无论是同步还是异步,以提供最流畅的用户体验。
表单和服务器操作:彻底摆脱useEffect的黑客方法,同时为SSR、SSG和SPA应用提供你想要的数据输入体验。
use client和use server:和谐地编写服务器端和客户端代码,消除尴尬的过渡。
你的代码会更好。你的编码体验也会更好。React 19使用起来更有趣,因为它终于为你提供了完整的一套工具,让你能够无妥协地创建高度互动、可组合且功能强大的Web应用程序。
在课程结束时,你将开发出如下项目:
博客搜索
集成非React UI库
井字游戏
新用户表单
高性能地球仪
计算器
计数器
可搜索的城市列表
从零开始构建React Server Components框架
在这个过程中,你将学习专业的编码实践:
掌握表单处理,这是交互式Web开发中最棘手(也是最强大)的部分之一。
学习如何进行性能优化,并优化现有的代码。(附赠:这些技术同样适用于非React应用!)
学习如何使用AI编码助手来大幅提升生产力。我在每一个Epic React视频课程中都使用我的AI助手。(当然,它们不会为你完成工作,但确实可以帮助你!)
你将在虚拟团队中练习开发React 19应用。模拟的指导者Peter项目经理和Kellie同事会设定规格、提供建议,甚至为你提供代码供你在此基础上构建,几乎就像现实生活一样。
而且你不必独自一人:每次你坐下来学习时,你会看到其他同学在同一时间学习同一课……并且你将获得终身访问Epic React Discord频道的权限。
所以,无论你是第一次学习React的中级开发者(真幸运!)……
……还是希望提升技能的经验丰富的React开发者……
如果你一直在寻找通往真正的React 19掌握之路?那么Epic React就是你的选择。
探索React开发的最新趋势和技术
从基础到最新的React Server Components,你将学到构建生产级React应用程序所需的一切知识。
React 基础
10个章节,56节课
学习构建React应用和库所必需的基础概念。
从一个HTML文件和脚本开始,学习React API来构建组件和管理表单。
学习使用React构建网页的基本知识。
React Hooks
6个章节,29节课
构建React hooks来管理UI状态。
学习如何使用React hooks为你的应用添加交互性,并构建动态网站。
掌握核心的React hooks,如useState、useEffect和useRef。
高级React APIs
9个章节,36节课
学习何时以及如何使用高级特性。
探索React提供的用于复杂状态管理、在应用中共享上下文、焦点管理等的hooks和API。
React Suspense
6个章节,29节课
开始以声明式的方式管理异步操作。
深入了解Suspense的工作原理,为你未来进行异步状态管理做好准备。
高级React模式
8个章节,30节课
学习8种有用的模式。
通过了解多种高级模式的优点和缺点,使你的代码比以往任何时候都更加优秀,总能知道该选择哪种模式。
React 性能
8个章节,33节课
了解如何以及何时优化你的应用。
使用浏览器分析器、React DevTools 分析器以及优化技术诊断、分析并修复React应用中的性能问题。
React Server Components
5个章节,27节课
从零开始理解React Server Components。
通过仅使用浏览器、Node.js和React构建框架,来理解和掌握React Server Components和Server Actions。
与专家的访谈
16次访谈
与Kent C. Dodds及特邀专家一起探索React开发的最新趋势和技术。
课程目录:
├── 4 React Suspense
│ ├── 4. Error Handling _Problem.vtt
│ ├── 32. Img Error Boundary _Problem.mp4
│ ├── 2. Throwing Promises _Problem.vtt
│ ├── 42. Parallel Loading _Problem.vtt
│ ├── 11. use React _Solution.mp4
│ ├── 20. Dad Joke Break Dynamic Promises.srt
│ ├── 5. Error Handling _ Solution.mp4
│ ├── 14. Promise Cache _Problem.vtt
│ ├── 39. useDeferredValue _Solution.mp4
│ ├── 44. Server Cache _Problem.mp4
│ ├── 47. Outro to React Suspense.mp4
│ ├── 33. Img Error Boundary _Solution.srt
│ ├── 46. Dad Joke Break Optimizations.vtt
│ ├── 4. Error Handling _Problem.mp4
│ ├── 12. Dad Joke Break Data fetching.srt
│ ├── 28. Dad Joke Break Optimistic UI.mp4
│ ├── 43. Parallel Loading _Solution.mp4
│ ├── 17. useTransition _Solution.srt
│ ├── 41. Intro to Optimizations.srt
│ ├── 31. Img Component _ Solution.vtt
│ ├── 8. Utility _ Problem.vtt
│ ├── 35. Key prop _Solution.srt
│ ├── 3. Throwing Promises _Solution.srt
│ ├── React Suspense.txt
│ ├── 44. Server Cache _Problem.vtt
│ ├── 30. Img Component _Problem.srt
│ ├── 17. useTransition _Solution.mp4
│ ├── 34. Key prop _Problem.srt
│ ├── 29. Intro to Suspense img.mp4
│ ├── 46. Dad Joke Break Optimizations.srt
│ ├── 25. Form Status _Solution.vtt
│ ├── 46. Dad Joke Break Optimizations.mp4
│ ├── 42. Parallel Loading _Problem.srt
│ ├── 40. Dad Joke Break Responsive.mp4
│ ├── 6. Formal Status _Problem.vtt
│ ├── 6. Formal Status _Problem.srt
│ ├── 9. Utility _Solution.mp4
│ ├── 38. useDeferredValue _Problem.mp4
│ ├── 38. useDeferredValue _Problem.vtt
│ ├── 2. Throwing Promises _Problem.srt
│ ├── 9. Utility _Solution.srt
│ ├── 10. use React _Problem.vtt
│ ├── 45. Server Cache _Solution.vtt
│ ├── 21. Intro to Optimistic UI.vtt
│ ├── 35. Key prop _Solution.vtt
│ ├── 17. useTransition _Solution.vtt
│ ├── 11. use React _Solution.srt
│ ├── 20. Dad Joke Break Dynamic Promises.vtt
│ ├── 25. Form Status _Solution.mp4
│ ├── 7. Formal Status _Solution.srt
│ ├── 45. Server Cache _Solution.srt
│ ├── 32. Img Error Boundary _Problem.vtt
│ ├── 36. Dad Joke Break Suspense img.mp4
│ ├── 7. Formal Status _Solution.mp4
│ ├── 23. Optimistic UI _Solution.mp4
│ ├── 25. Form Status _Solution.srt
│ ├── 1. Intro to Data fetching.vtt
│ ├── 24. Form Status _ Problem.srt
│ ├── 15. Promise Cache _Solution.vtt
│ ├── 38. useDeferredValue _Problem.srt
│ ├── 10. use React _Problem.mp4
│ ├── 3. Throwing Promises _Solution.mp4
│ ├── 19. Pending Flash _Solution.mp4
│ ├── 31. Img Component _ Solution.srt
│ ├── 31. Img Component _ Solution.mp4
│ ├── 34. Key prop _Problem.vtt
│ ├── 21. Intro to Optimistic UI.mp4
│ ├── 16. useTransition _Problem.srt
│ ├── 28. Dad Joke Break Optimistic UI.srt
│ ├── 1. Intro to Data fetching.mp4
│ ├── 34. Key prop _Problem.mp4
│ ├── 5. Error Handling _ Solution.srt
│ ├── 26. Multi-step Actions _Problem.mp4
│ ├── 36. Dad Joke Break Suspense img.srt
│ ├── 39. useDeferredValue _Solution.vtt
│ ├── 33. Img Error Boundary _Solution.vtt
│ ├── 26. Multi-step Actions _Problem.vtt
│ ├── 22. Optimistic UI _Problem.vtt
│ ├── 23. Optimistic UI _Solution.vtt
│ ├── 21. Intro to Optimistic UI.srt
│ ├── 27. Multi-step Actions _ Solution.mp4
│ ├── 14. Promise Cache _Problem.srt
│ ├── 35. Key prop _Solution.mp4
│ ├── 30. Img Component _Problem.mp4
│ ├── 1. Intro to Data fetching.srt
│ ├── 20. Dad Joke Break Dynamic Promises.mp4
│ ├── 10. use React _Problem.srt
│ ├── 43. Parallel Loading _Solution.vtt
│ ├── 3. Throwing Promises _Solution.vtt
│ ├── 27. Multi-step Actions _ Solution.vtt
│ ├── 15. Promise Cache _Solution.srt
│ ├── 45. Server Cache _Solution.mp4
│ ├── 41. Intro to Optimizations.vtt
│ ├── 11. use React _Solution.vtt
│ ├── 30. Img Component _Problem.vtt
│ ├── 19. Pending Flash _Solution.vtt
│ ├── 32. Img Error Boundary _Problem.srt
│ ├── 37. Intro to Responsive.mp4
│ ├── 24. Form Status _ Problem.vtt
│ ├── 15. Promise Cache _Solution.mp4
│ ├── 23. Optimistic UI _Solution.srt
│ ├── 13. Intro to Dynamic Promises.srt
│ ├── 42. Parallel Loading _Problem.mp4
│ ├── 8. Utility _ Problem.srt
│ ├── 40. Dad Joke Break Responsive.srt
│ ├── 29. Intro to Suspense img.srt
│ ├── 12. Dad Joke Break Data fetching.mp4
│ ├── 28. Dad Joke Break Optimistic UI.vtt
│ ├── 27. Multi-step Actions _ Solution.srt
│ ├── 13. Intro to Dynamic Promises.vtt
│ ├── 22. Optimistic UI _Problem.mp4
│ ├── 5. Error Handling _ Solution.vtt
│ ├── 16. useTransition _Problem.mp4
│ ├── 40. Dad Joke Break Responsive.vtt
│ ├── 47. Outro to React Suspense.srt
│ ├── 22. Optimistic UI _Problem.srt
│ ├── 29. Intro to Suspense img.vtt
│ ├── 4. Error Handling _Problem.srt
│ ├── 33. Img Error Boundary _Solution.mp4
│ ├── 9. Utility _Solution.vtt
│ ├── 13. Intro to Dynamic Promises.mp4
│ ├── 26. Multi-step Actions _Problem.srt
│ ├── 2. Throwing Promises _Problem.mp4
│ ├── 24. Form Status _ Problem.mp4
│ ├── 8. Utility _ Problem.mp4
│ ├── 14. Promise Cache _Problem.mp4
│ ├── 18. Pending Flash _Problem.vtt
│ ├── 6. Formal Status _Problem.mp4
│ ├── 39. useDeferredValue _Solution.srt
│ ├── 16. useTransition _Problem.vtt
│ ├── 44. Server Cache _Problem.srt
│ ├── 12. Dad Joke Break Data fetching.vtt
│ ├── 19. Pending Flash _Solution.srt
│ ├── 41. Intro to Optimizations.mp4
│ ├── 18. Pending Flash _Problem.mp4
│ ├── 47. Outro to React Suspense.vtt
│ ├── 7. Formal Status _Solution.vtt
│ ├── 37. Intro to Responsive.srt
│ ├── 18. Pending Flash _Problem.srt
│ ├── 43. Parallel Loading _Solution.srt
│ ├── 36. Dad Joke Break Suspense img.vtt
│ ├── 37. Intro to Responsive.vtt
├── 7 React Server Components
│ ├── 7. RSCs _Problem.vtt
│ ├── 19. Module Resolution _Solution.vtt
│ ├── 13. Server Context _Solution.mp4
│ ├── 44. Dad Joke Break Server Actions.vtt
│ ├── 19. Module Resolution _Solution.mp4
│ ├── 25. Pending UI _Solution.vtt
│ ├── 34. Action Reference _ Problem.srt
│ ├── 16. Node.js Loader _Problem.mp4
│ ├── 25. Pending UI _Solution.srt
│ ├── 28. History _Problem.mp4
│ ├── 5. Dad Joke Break Warm Up.mp4
│ ├── 1. React Server Components Intro.vtt
│ ├── 10. Streaming _Problem.vtt
│ ├── 36. Client Side _Problem.mp4
│ ├── 35. Action Reference _Solution.srt
│ ├── 44. Dad Joke Break Server Actions.srt
│ ├── 26. Race Conditions _Problem.mp4
│ ├── 6. Intro to Server Components.mp4
│ ├── 33. Intro to Server Actions.mp4
│ ├── 17. Node.js Loader _Solution.vtt
│ ├── 14. Dad Joke Break Server Components.srt
│ ├── 12. Server Context _Problem.vtt
│ ├── 9. Async Components _Solution.srt
│ ├── 12. Server Context _Problem.mp4
│ ├── 1. React Server Components Intro.mp4
│ ├── 22. Client Router _Problem.mp4
│ ├── 13. Server Context _Solution.srt
│ ├── 14. Dad Joke Break Server Components.mp4
│ ├── 7. RSCs _Problem.mp4
│ ├── 18. Module Resolution _Problem.srt
│ ├── 30. Cache _Problem.srt
│ ├── 5. Dad Joke Break Warm Up.vtt
│ ├── 27. Race Conditions _Solution.mp4
│ ├── 36. Client Side _Problem.srt
│ ├── 41. Revalidation _Solution.srt
│ ├── 39. Server Side _Solution.srt
│ ├── 6. Intro to Server Components.vtt
│ ├── 37. Client Side _ Solution.vtt
│ ├── 42. History Revalidation _ Problem.mp4
│ ├── 10. Streaming _Problem.mp4
│ ├── 31. Cache _Solution.vtt
│ ├── 40. Revalidation _Problem.srt
│ ├── 23. Client Router _Solution.srt
│ ├── React Server Components.txt
│ ├── 29. History _Solution.vtt
│ ├── 12. Server Context _Problem.srt
│ ├── 32. Dad Joke Break Client Router.srt
│ ├── 32. Dad Joke Break Client Router.vtt
│ ├── 29. History _Solution.mp4
│ ├── 38. Server Side _Problem.vtt
│ ├── 3. Static React App _Problem.srt
│ ├── 4. Static React App _Solution.vtt
│ ├── 18. Module Resolution _Problem.mp4
│ ├── 33. Intro to Server Actions.srt
│ ├── 38. Server Side _Problem.srt
│ ├── 9. Async Components _Solution.mp4
│ ├── 45. Outro to React Server Components.mp4
│ ├── 40. Revalidation _Problem.vtt
│ ├── 21. Intro to Client Router.srt
│ ├── 25. Pending UI _Solution.mp4
│ ├── 8. Async Components _ Problem.srt
│ ├── 27. Race Conditions _Solution.vtt
│ ├── 4. Static React App _Solution.srt
│ ├── 23. Client Router _Solution.vtt
│ ├── 6. Intro to Server Components.srt
│ ├── 14. Dad Joke Break Server Components.vtt
│ ├── 10. Streaming _Problem.srt
│ ├── 29. History _Solution.srt
│ ├── 15. Intro to Client Components.srt
│ ├── 39. Server Side _Solution.vtt
│ ├── 26. Race Conditions _Problem.srt
│ ├── 28. History _Problem.srt
│ ├── 34. Action Reference _ Problem.vtt
│ ├── 16. Node.js Loader _Problem.vtt
│ ├── 41. Revalidation _Solution.vtt
│ ├── 18. Module Resolution _Problem.vtt
│ ├── 8. Async Components _ Problem.mp4
│ ├── 2. Intro to Warm Up.srt
│ ├── 3. Static React App _Problem.vtt
│ ├── 39. Server Side _Solution.mp4
│ ├── 24. Pending UI _Problem.mp4
│ ├── 26. Race Conditions _Problem.vtt
│ ├── 31. Cache _Solution.srt
│ ├── 4. Static React App _Solution.mp4
│ ├── 40. Revalidation _Problem.mp4
│ ├── 9. Async Components _Solution.vtt
│ ├── 44. Dad Joke Break Server Actions.mp4
│ ├── 34. Action Reference _ Problem.mp4
│ ├── 43. History Revalidation _Solution.mp4
│ ├── 45. Outro to React Server Components.srt
│ ├── 15. Intro to Client Components.mp4
│ ├── 11. Streaming _ Solution.mp4
│ ├── 38. Server Side _Problem.mp4
│ ├── 19. Module Resolution _Solution.srt
│ ├── 27. Race Conditions _Solution.srt
│ ├── 17. Node.js Loader _Solution.mp4
│ ├── 42. History Revalidation _ Problem.srt
│ ├── 35. Action Reference _Solution.vtt
│ ├── 37. Client Side _ Solution.mp4
│ ├── 24. Pending UI _Problem.vtt
│ ├── 45. Outro to React Server Components.vtt
│ ├── 20. Dad Joke Break Client Components.srt
│ ├── 28. History _Problem.vtt
│ ├── 13. Server Context _Solution.vtt
│ ├── 35. Action Reference _Solution.mp4
│ ├── 32. Dad Joke Break Client Router.mp4
│ ├── 23. Client Router _Solution.mp4
│ ├── 15. Intro to Client Components.vtt
│ ├── 1. React Server Components Intro.srt
│ ├── 37. Client Side _ Solution.srt
│ ├── 41. Revalidation _Solution.mp4
│ ├── 36. Client Side _Problem.vtt
│ ├── 24. Pending UI _Problem.srt
│ ├── 7. RSCs _Problem.srt
│ ├── 22. Client Router _Problem.vtt
│ ├── 20. Dad Joke Break Client Components.vtt
│ ├── 11. Streaming _ Solution.srt
│ ├── 43. History Revalidation _Solution.vtt
│ ├── 11. Streaming _ Solution.vtt
│ ├── 8. Async Components _ Problem.vtt
│ ├── 21. Intro to Client Router.mp4
│ ├── 42. History Revalidation _ Problem.vtt
│ ├── 2. Intro to Warm Up.mp4
│ ├── 33. Intro to Server Actions.vtt
│ ├── 21. Intro to Client Router.vtt
│ ├── 43. History Revalidation _Solution.srt
│ ├── 16. Node.js Loader _Problem.srt
│ ├── 22. Client Router _Problem.srt
│ ├── 30. Cache _Problem.vtt
│ ├── 3. Static React App _Problem.mp4
│ ├── 17. Node.js Loader _Solution.srt
│ ├── 31. Cache _Solution.mp4
│ ├── 20. Dad Joke Break Client Components.mp4
│ ├── 30. Cache _Problem.mp4
│ ├── 5. Dad Joke Break Warm Up.srt
│ ├── 2. Intro to Warm Up.vtt
├── 5 Advanced React Patterns
│ ├── 37. State Reducer _Problem.vtt
│ ├── 21. Slot Prop _Problem.srt
│ ├── 7. Latest Ref _ Problem.mp4
│ ├── 29. Dad Joke Break Prop Collections and Getters.mp4
│ ├── 8. Latest Ref _Solution.vtt
│ ├── 38. State Reducer _Solution.vtt
│ ├── Advanced React Patterns.txt
│ ├── 33. Stability _Problem.mp4
│ ├── 15. Dad Joke Break Compound Components.vtt
│ ├── 45. Dad Joke Break Control Props.srt
│ ├── 9. Dad Joke Break Latest Ref.srt
│ ├── 18. Slot Context _ Solution.srt
│ ├── 13. Compound Components Validation _ Problem.srt
│ ├── 37. State Reducer _Problem.mp4
│ ├── 5. Dad Joke Break Composition.mp4
│ ├── 10. Intro to Compound Components.mp4
│ ├── 3. Composition and Layout Components _ Problem.vtt
│ ├── 41. Dad Joke Break State Reducer.vtt
│ ├── 30. Intro to State Initializer.vtt
│ ├── 41. Dad Joke Break State Reducer.srt
│ ├── 31. Initialize Toggle _Problem.srt
│ ├── 11. Compound Components _ Problem.vtt
│ ├── 6. Intro to Latest Ref.srt
│ ├── 18. Slot Context _ Solution.mp4
│ ├── 35. Dad Joke Break State Initializer.vtt
│ ├── 46. Outro to Advanced React Patterns.vtt
│ ├── 21. Slot Prop _Problem.vtt
│ ├── 46. Outro to Advanced React Patterns.mp4
│ ├── 34. Stability _Solution.mp4
│ ├── 36. Intro to State Reducer.vtt
│ ├── 13. Compound Components Validation _ Problem.vtt
│ ├── 45. Dad Joke Break Control Props.mp4
│ ├── 38. State Reducer _Solution.srt
│ ├── 41. Dad Joke Break State Reducer.mp4
│ ├── 16. Intro to Slots.srt
│ ├── 30. Intro to State Initializer.srt
│ ├── 34. Stability _Solution.srt
│ ├── 27. Prop Getters _Problem.srt
│ ├── 35. Dad Joke Break State Initializer.srt
│ ├── 43. Control Props _Problem.mp4
│ ├── 42. Intro to Control Props.vtt
│ ├── 24. Intro to Prop Collections and Getters.srt
│ ├── 22. Slot Prop _ Solution.srt
│ ├── 40. Default State Reducer _Solution.vtt
│ ├── 31. Initialize Toggle _Problem.mp4
│ ├── 12. Compound Components _ Solution.srt
│ ├── 18. Slot Context _ Solution.vtt
│ ├── 40. Default State Reducer _Solution.srt
│ ├── 14. Compound Components Validation _Solution.mp4
│ ├── 14. Compound Components Validation _Solution.vtt
│ ├── 21. Slot Prop _Problem.mp4
│ ├── 1. Advanced React Patterns Intro.srt
│ ├── 27. Prop Getters _Problem.vtt
│ ├── 40. Default State Reducer _Solution.mp4
│ ├── 16. Intro to Slots.vtt
│ ├── 25. Prop Collections _Problem.srt
│ ├── 28. Prop Getters _Solution.srt
│ ├── 10. Intro to Compound Components.vtt
│ ├── 25. Prop Collections _Problem.mp4
│ ├── 17. Slot Context _Problem.mp4
│ ├── 17. Slot Context _Problem.srt
│ ├── 25. Prop Collections _Problem.vtt
│ ├── 19. Generic Slot Components _ Problem.mp4
│ ├── 32. Initialize Toggle _Solution.mp4
│ ├── 7. Latest Ref _ Problem.vtt
│ ├── 20. Generic Slot Components _ Solution.srt
│ ├── 11. Compound Components _ Problem.mp4
│ ├── 32. Initialize Toggle _Solution.srt
│ ├── 4. Composition and Layout Components _Solution.mp4
│ ├── 16. Intro to Slots.mp4
│ ├── 42. Intro to Control Props.mp4
│ ├── 34. Stability _Solution.vtt
│ ├── 8. Latest Ref _Solution.mp4
│ ├── 10. Intro to Compound Components.srt
│ ├── 30. Intro to State Initializer.mp4
│ ├── 39. Default State Reducer _Problem.srt
│ ├── 23. Dad Joke Break Slots.vtt
│ ├── 36. Intro to State Reducer.srt
│ ├── 2. Intro to Composition.vtt
│ ├── 31. Initialize Toggle _Problem.vtt
│ ├── 19. Generic Slot Components _ Problem.srt
│ ├── 39. Default State Reducer _Problem.vtt
│ ├── 9. Dad Joke Break Latest Ref.mp4
│ ├── 19. Generic Slot Components _ Problem.vtt
│ ├── 3. Composition and Layout Components _ Problem.mp4
│ ├── 26. Prop Collections _Solution.vtt
│ ├── 14. Compound Components Validation _Solution.srt
│ ├── 15. Dad Joke Break Compound Components.srt
│ ├── 22. Slot Prop _ Solution.mp4
│ ├── 6. Intro to Latest Ref.mp4
│ ├── 20. Generic Slot Components _ Solution.mp4
│ ├── 5. Dad Joke Break Composition.vtt
│ ├── 1. Advanced React Patterns Intro.vtt
│ ├── 44. Control Props _Solution.srt
│ ├── 35. Dad Joke Break State Initializer.mp4
│ ├── 11. Compound Components _ Problem.srt
│ ├── 46. Outro to Advanced React Patterns.srt
│ ├── 28. Prop Getters _Solution.vtt
│ ├── 1. Advanced React Patterns Intro.mp4
│ ├── 42. Intro to Control Props.srt
│ ├── 26. Prop Collections _Solution.srt
│ ├── 3. Composition and Layout Components _ Problem.srt
│ ├── 4. Composition and Layout Components _Solution.srt
│ ├── 33. Stability _Problem.srt
│ ├── 43. Control Props _Problem.vtt
│ ├── 8. Latest Ref _Solution.srt
│ ├── 5. Dad Joke Break Composition.srt
│ ├── 44. Control Props _Solution.vtt
│ ├── 29. Dad Joke Break Prop Collections and Getters.vtt
│ ├── 32. Initialize Toggle _Solution.vtt
│ ├── 44. Control Props _Solution.mp4
│ ├── 45. Dad Joke Break Control Props.vtt
│ ├── 20. Generic Slot Components _ Solution.vtt
│ ├── 43. Control Props _Problem.srt
│ ├── 2. Intro to Composition.srt
│ ├── 36. Intro to State Reducer.mp4
│ ├── 39. Default State Reducer _Problem.mp4
│ ├── 9. Dad Joke Break Latest Ref.vtt
│ ├── 4. Composition and Layout Components _Solution.vtt
│ ├── 29. Dad Joke Break Prop Collections and Getters.srt
│ ├── 37. State Reducer _Problem.srt
│ ├── 15. Dad Joke Break Compound Components.mp4
│ ├── 12. Compound Components _ Solution.vtt
│ ├── 12. Compound Components _ Solution.mp4
│ ├── 7. Latest Ref _ Problem.srt
│ ├── 2. Intro to Composition.mp4
│ ├── 24. Intro to Prop Collections and Getters.mp4
│ ├── 13. Compound Components Validation _ Problem.mp4
│ ├── 23. Dad Joke Break Slots.mp4
│ ├── 26. Prop Collections _Solution.mp4
│ ├── 23. Dad Joke Break Slots.srt
│ ├── 27. Prop Getters _Problem.mp4
│ ├── 6. Intro to Latest Ref.vtt
│ ├── 17. Slot Context _Problem.vtt
│ ├── 28. Prop Getters _Solution.mp4
│ ├── 38. State Reducer _Solution.mp4
│ ├── 24. Intro to Prop Collections and Getters.vtt
│ ├── 22. Slot Prop _ Solution.vtt
│ ├── 33. Stability _Problem.vtt
├── 3 Advanced React APIs
│ ├── 48. Intro to Sync External State.srt
│ ├── 51. Make Store Utility _Problem.srt
│ ├── 14. Real World _ solution.mp4
│ ├── 12. Traditional Reducer _ solution.mp4
│ ├── 28. Context Provider _ solution.mp4
│ ├── 5. Previous State _ Problem.mp4
│ ├── 10. Action Function _ solution.srt
│ ├── 44. Intro to Focus Management.srt
│ ├── 30. Context Hook _ solution.srt
│ ├── 27. Context Provider _ Problem.mp4
│ ├── 40. Intro to Imperative Handles.mp4
│ ├── 22. Hook Function _ solution.mp4
│ ├── 9. Action Function _ Problem.srt
│ ├── 40. Intro to Imperative Handles.vtt
│ ├── 23. useCallback _ Problem.vtt
│ ├── 38. useLayoutEffect _solution.mp4
│ ├── 4. New State _ solution.vtt
│ ├── 55. Dad Joke Break Sync External State.srt
│ ├── 1. Advanced React APIs Intro.srt
│ ├── 51. Make Store Utility _Problem.mp4
│ ├── 42. useImperativeHandle _ solution.mp4
│ ├── 5. Previous State _ Problem.vtt
│ ├── 11. Traditional Reducer _ Problem.vtt
│ ├── 7. State Object _ Problem.vtt
│ ├── 37. useLayoutEffect _Problem.mp4
│ ├── 20. Intro to Custom Hooks.srt
│ ├── 16. Intro to State Optimization.vtt
│ ├── 25. Dad Joke Break Custom Hooks.vtt
│ ├── 24. useCallback _ solution.srt
│ ├── 52. Make Store Utility _solution.srt
│ ├── 22. Hook Function _ solution.srt
│ ├── 4. New State _ solution.mp4
│ ├── 49. useSyncExternalStore _Problem.vtt
│ ├── 36. Intro to Layout Computation.vtt
│ ├── 33. createPortal _ Problem.vtt
│ ├── 56. Outro to Advanced React APIs.mp4
│ ├── 44. Intro to Focus Management.vtt
│ ├── 8. State Object _ solution.srt
│ ├── 18. Optimize state updates _solution.srt
│ ├── 2. Intro to Advanced State Management.mp4
│ ├── 55. Dad Joke Break Sync External State.mp4
│ ├── 28. Context Provider _ solution.srt
│ ├── 18. Optimize state updates _solution.vtt
│ ├── 43. Dad Joke Break Imperative Handles.srt
│ ├── 54. Handling Server Rendering _solution.srt
│ ├── 47. Dad Joke Break Focus Management.vtt
│ ├── 1. Advanced React APIs Intro.mp4
│ ├── 47. Dad Joke Break Focus Management.mp4
│ ├── 27. Context Provider _ Problem.srt
│ ├── 34. createPortal _ solution.srt
│ ├── 6. Previous State _ solution.vtt
│ ├── 38. useLayoutEffect _solution.srt
│ ├── 14. Real World _ solution.vtt
│ ├── 9. Action Function _ Problem.vtt
│ ├── 22. Hook Function _ solution.vtt
│ ├── 35. Dad Joke Break Portals.vtt
│ ├── 13. Real World _Problem.vtt
│ ├── 35. Dad Joke Break Portals.srt
│ ├── 19. Dad Joke Break State Optimization.srt
│ ├── 24. useCallback _ solution.mp4
│ ├── 5. Previous State _ Problem.srt
│ ├── 46. flushSync _solution.srt
│ ├── 45. flushSync _Problem.mp4
│ ├── 3. New State _ Problem.srt
│ ├── 21. Hook Function _Problem.vtt
│ ├── 40. Intro to Imperative Handles.srt
│ ├── 37. useLayoutEffect _Problem.vtt
│ ├── 50. useSyncExternalStore _solution.mp4
│ ├── 8. State Object _ solution.mp4
│ ├── 23. useCallback _ Problem.srt
│ ├── 14. Real World _ solution.srt
│ ├── 26. Intro to Shared Context.vtt
│ ├── 1. Advanced React APIs Intro.vtt
│ ├── 52. Make Store Utility _solution.mp4
│ ├── 15. Dad Joke Break Advanced State Management.mp4
│ ├── 20. Intro to Custom Hooks.mp4
│ ├── 8. State Object _ solution.vtt
│ ├── 19. Dad Joke Break State Optimization.mp4
│ ├── 11. Traditional Reducer _ Problem.mp4
│ ├── 21. Hook Function _Problem.srt
│ ├── 11. Traditional Reducer _ Problem.srt
│ ├── 23. useCallback _ Problem.mp4
│ ├── 12. Traditional Reducer _ solution.srt
│ ├── 32. Intro to Portals.srt
│ ├── 29. Context Hook _ Problem.srt
│ ├── 34. createPortal _ solution.mp4
│ ├── 15. Dad Joke Break Advanced State Management.srt
│ ├── 44. Intro to Focus Management.mp4
│ ├── 6. Previous State _ solution.srt
│ ├── 33. createPortal _ Problem.srt
│ ├── 10. Action Function _ solution.mp4
│ ├── 41. useImperativeHandle _Problem.srt
│ ├── 39. Dad Joke Break Layout Computation.mp4
│ ├── 3. New State _ Problem.mp4
│ ├── 39. Dad Joke Break Layout Computation.srt
│ ├── 31. Dad Joke Break Shared Context.srt
│ ├── 56. Outro to Advanced React APIs.srt
│ ├── 4. New State _ solution.srt
│ ├── 41. useImperativeHandle _Problem.mp4
│ ├── 30. Context Hook _ solution.mp4
│ ├── 17. Optimize state updates _ Problem.mp4
│ ├── 55. Dad Joke Break Sync External State.vtt
│ ├── 26. Intro to Shared Context.srt
│ ├── 33. createPortal _ Problem.mp4
│ ├── 46. flushSync _solution.vtt
│ ├── 7. State Object _ Problem.mp4
│ ├── 56. Outro to Advanced React APIs.vtt
│ ├── 47. Dad Joke Break Focus Management.srt
│ ├── 51. Make Store Utility _Problem.vtt
│ ├── 2. Intro to Advanced State Management.vtt
│ ├── 48. Intro to Sync External State.vtt
│ ├── 2. Intro to Advanced State Management.srt
│ ├── 36. Intro to Layout Computation.mp4
│ ├── 29. Context Hook _ Problem.mp4
│ ├── 32. Intro to Portals.mp4
│ ├── 32. Intro to Portals.vtt
│ ├── 53. Handling Server Rendering _Problem.srt
│ ├── 18. Optimize state updates _solution.mp4
│ ├── 41. useImperativeHandle _Problem.vtt
│ ├── 6. Previous State _ solution.mp4
│ ├── 27. Context Provider _ Problem.vtt
│ ├── 54. Handling Server Rendering _solution.mp4
│ ├── 42. useImperativeHandle _ solution.vtt
│ ├── 54. Handling Server Rendering _solution.vtt
│ ├── 29. Context Hook _ Problem.vtt
│ ├── 50. useSyncExternalStore _solution.srt
│ ├── 17. Optimize state updates _ Problem.vtt
│ ├── 39. Dad Joke Break Layout Computation.vtt
│ ├── 53. Handling Server Rendering _Problem.mp4
│ ├── 15. Dad Joke Break Advanced State Management.vtt
│ ├── 19. Dad Joke Break State Optimization.vtt
│ ├── 38. useLayoutEffect _solution.vtt
│ ├── 3. New State _ Problem.vtt
│ ├── 17. Optimize state updates _ Problem.srt
│ ├── 16. Intro to State Optimization.mp4
│ ├── 7. State Object _ Problem.srt
│ ├── 53. Handling Server Rendering _Problem.vtt
│ ├── 46. flushSync _solution.mp4
│ ├── 30. Context Hook _ solution.vtt
│ ├── 50. useSyncExternalStore _solution.vtt
│ ├── 35. Dad Joke Break Portals.mp4
│ ├── 26. Intro to Shared Context.mp4
│ ├── 43. Dad Joke Break Imperative Handles.vtt
│ ├── 42. useImperativeHandle _ solution.srt
│ ├── 45. flushSync _Problem.vtt
│ ├── 49. useSyncExternalStore _Problem.mp4
│ ├── 28. Context Provider _ solution.vtt
│ ├── 25. Dad Joke Break Custom Hooks.srt
│ ├── 24. useCallback _ solution.vtt
│ ├── Advanced React APIs.txt
│ ├── 36. Intro to Layout Computation.srt
│ ├── 13. Real World _Problem.srt
│ ├── 52. Make Store Utility _solution.vtt
│ ├── 10. Action Function _ solution.vtt
│ ├── 31. Dad Joke Break Shared Context.vtt
│ ├── 37. useLayoutEffect _Problem.srt
│ ├── 12. Traditional Reducer _ solution.vtt
│ ├── 31. Dad Joke Break Shared Context.mp4
│ ├── 16. Intro to State Optimization.srt
│ ├── 21. Hook Function _Problem.mp4
│ ├── 43. Dad Joke Break Imperative Handles.mp4
│ ├── 34. createPortal _ solution.vtt
│ ├── 13. Real World _Problem.mp4
│ ├── 25. Dad Joke Break Custom Hooks.mp4
│ ├── 48. Intro to Sync External State.mp4
│ ├── 20. Intro to Custom Hooks.vtt
│ ├── 49. useSyncExternalStore _Problem.srt
│ ├── 45. flushSync _Problem.srt
│ ├── 9. Action Function _ Problem.mp4
├── 1 React Fundamentals
│ ├── 016 Compiling JSX.vtt
│ ├── 093 Key prop (1).vtt
│ ├── 044 Default Props.vtt
│ ├── 099 Outro to React Fundamentals.vtt
│ ├── 080 Default Value.mp4
│ ├── 090 Dad Joke Break Error Boundaries.mp4
│ ├── 013 Deep Nesting Elements (1).mp4
│ ├── 070 Dad Joke Break Forms.vtt
│ ├── 058 Dad Joke Break Styling.srt
│ ├── 010 Nesting Elements.vtt
│ ├── 016 Compiling JSX.mp4
│ ├── 037 Intro to TypeScript.srt
│ ├── 042 Derive Types.vtt
│ ├── 006 Dad Joke Break.mp4
│ ├── 039 Props (3).vtt
│ ├── 070 Dad Joke Break Forms.mp4
│ ├── 033 JSX Components (1).srt
│ ├── 025 Fragments (1).mp4
│ ├── 093 Key prop (1).srt
│ ├── 039 Props (3).srt
│ ├── 036 Dad Joke Break Custom Components.vtt
│ ├── 026 Dad Joke Break Using JSX.vtt
│ ├── 043 Derive Types (1).mp4
│ ├── 080 Default Value.srt
│ ├── 047 Reduce Duplication (1).mp4
│ ├── 055 Custom Component (1).mp4
│ ├── 011 Nesting Elements (1).vtt
│ ├── 009 Create React Elements (1).mp4
│ ├── 002 Hello World in JS.vtt
│ ├── 036 Dad Joke Break Custom Components.srt
│ ├── 025 Fragments (1).srt
│ ├── 076 Radios.vtt
│ ├── 001 Intro.vtt
│ ├── 004 Generate the Root Node.srt
│ ├── 039 Props (3).mp4
│ ├── 098 Dad Joke Break Rendering Arrays.mp4
│ ├── 073 Checkbox (1).srt
│ ├── 017 Compiling JSX (1).srt
│ ├── 077 Radios (1).mp4
│ ├── 082 Dad Joke Break Inputs.vtt
│ ├── 020 Spread props.srt
│ ├── 018 Interpolation.mp4
│ ├── 054 Custom Component.vtt
│ ├── 019 Interpolation (1).srt
│ ├── 089 Reset (1).srt
│ ├── 051 Intro to Styling.mp4
│ ├── 023 Nesting JSX (1).vtt
│ ├── 067 Submission (1).mp4
│ ├── 078 Hidden Inputs.srt
│ ├── 050 Dad Joke Break TypeScript.srt
│ ├── 030 Raw API.srt
│ ├── 049 Satisfies (1).srt
│ ├── 099 Outro to React Fundamentals.srt
│ ├── 088 Reset.srt
│ ├── 088 Reset.mp4
│ ├── 086 Other Errors.vtt
│ ├── 014 Dad Joke Break Raw React APIs.vtt
│ ├── 098 Dad Joke Break Rendering Arrays.srt
│ ├── 005 Generate the Root Node (1).srt
│ ├── 089 Reset (1).mp4
│ ├── 038 Props (2).vtt
│ ├── 056 Size Prop.mp4
│ ├── 082 Dad Joke Break Inputs.srt
│ ├── 084 Composition.vtt
│ ├── 048 Satisfies.srt
│ ├── 096 Key Reset.vtt
│ ├── 057 Size Prop (1).vtt
│ ├── 095 Focus State (1).srt
│ ├── 038 Props (2).mp4
│ ├── 015 Intro to Using JSX.vtt
│ ├── 089 Reset (1).vtt
│ ├── 024 Fragments.vtt
│ ├── 057 Size Prop (1).srt
│ ├── 060 Form.vtt
│ ├── 048 Satisfies.vtt
│ ├── 005 Generate the Root Node (1).vtt
│ ├── 097 Key Reset (1).vtt
│ ├── 050 Dad Joke Break TypeScript.mp4
│ ├── 025 Fragments (1).vtt
│ ├── 032 JSX Components.vtt
│ ├── 075 Select (1).srt
│ ├── 033 JSX Components (1).vtt
│ ├── 092 Key prop.srt
│ ├── 020 Spread props.vtt
│ ├── 001 Intro.mp4
│ ├── 087 Other Errors (1).srt
│ ├── 010 Nesting Elements.srt
│ ├── 004 Generate the Root Node.vtt
│ ├── 003 Hello World in JS (1).vtt
│ ├── 013 Deep Nesting Elements (1).srt
│ ├── 071 Intro to Inputs.vtt
│ ├── 037 Intro to TypeScript.vtt
│ ├── 008 Create React Elements.mp4
│ ├── 017 Compiling JSX (1).vtt
│ ├── 043 Derive Types (1).vtt
│ ├── 023 Nesting JSX (1).srt
│ ├── 028 Simple Function.srt
│ ├── 049 Satisfies (1).vtt
│ ├── 076 Radios.mp4
│ ├── 035 Props (1).mp4
│ ├── 067 Submission (1).srt
│ ├── 061 Form (1).mp4
│ ├── 048 Satisfies.mp4
│ ├── 019 Interpolation (1).vtt
│ ├── 064 Input Types.srt
│ ├── 068 Form Actions.vtt
│ ├── 041 Narrow Types (1).mp4
│ ├── 097 Key Reset (1).mp4
│ ├── 094 Focus State.vtt
│ ├── 006 Dad Joke Break.srt
│ ├── 066 Submission.srt
│ ├── 032 JSX Components.mp4
│ ├── 092 Key prop.mp4
│ ├── 045 Default Props (1).srt
│ ├── 007 Intro to Raw React APIs.mp4
│ ├── 079 Hidden Inputs (1).mp4
│ ├── 030 Raw API.mp4
│ ├── 052 Styling.srt
│ ├── 045 Default Props (1).vtt
│ ├── 028 Simple Function.vtt
│ ├── 063 Form Action (1).srt
│ ├── 029 Simple Function (1).mp4
│ ├── 050 Dad Joke Break TypeScript.vtt
│ ├── 031 Raw API (1).srt
│ ├── 029 Simple Function (1).vtt
│ ├── 080 Default Value.vtt
│ ├── 077 Radios (1).srt
│ ├── 072 Checkbox.mp4
│ ├── 077 Radios (1).vtt
│ ├── 078 Hidden Inputs.vtt
│ ├── 085 Composition (1).mp4
│ ├── 051 Intro to Styling.srt
│ ├── 069 Form Actions (1).mp4
│ ├── 040 Narrow Types.mp4
│ ├── 022 Nesting JSX.mp4
│ ├── 024 Fragments.mp4
│ ├── 086 Other Errors.srt
│ ├── 063 Form Action (1).mp4
│ ├── 017 Compiling JSX (1).mp4
│ ├── 003 Hello World in JS (1).mp4
│ ├── 076 Radios.srt
│ ├── 095 Focus State (1).mp4
│ ├── 068 Form Actions.srt
│ ├── 073 Checkbox (1).vtt
│ ├── 027 Intro to Custom Components.srt
│ ├── 085 Composition (1).vtt
│ ├── 018 Interpolation.srt
│ ├── 044 Default Props.mp4
│ ├── 041 Narrow Types (1).vtt
│ ├── 071 Intro to Inputs.srt
│ ├── 090 Dad Joke Break Error Boundaries.vtt
│ ├── 082 Dad Joke Break Inputs.mp4
│ ├── 062 Form Action.vtt
│ ├── 016 Compiling JSX.srt
│ ├── 015 Intro to Using JSX.srt
│ ├── 074 Select.mp4
│ ├── 008 Create React Elements.srt
│ ├── 090 Dad Joke Break Error Boundaries.srt
│ ├── 011 Nesting Elements (1).mp4
│ ├── 004 Generate the Root Node.mp4
│ ├── 096 Key Reset.srt
│ ├── 043 Derive Types (1).srt
│ ├── 087 Other Errors (1).vtt
│ ├── 087 Other Errors (1).mp4
│ ├── 046 Reduce Duplication.vtt
│ ├── 060 Form.srt
│ ├── 091 Intro to Rendering Arrays.mp4
│ ├── 047 Reduce Duplication (1).vtt
│ ├── 021 Spread props (1).mp4
│ ├── 034 Props.srt
│ ├── 081 Default Value (1).mp4
│ ├── 040 Narrow Types.srt
│ ├── 002 Hello World in JS.srt
│ ├── 066 Submission.mp4
│ ├── 061 Form (1).vtt
│ ├── 026 Dad Joke Break Using JSX.mp4
│ ├── 018 Interpolation.vtt
│ ├── 003 Hello World in JS (1).srt
│ ├── 009 Create React Elements (1).srt
│ ├── 021 Spread props (1).srt
│ ├── 055 Custom Component (1).vtt
│ ├── 036 Dad Joke Break Custom Components.mp4
│ ├── 084 Composition.mp4
│ ├── 014 Dad Joke Break Raw React APIs.mp4
│ ├── 001 Intro.srt
│ ├── 059 Intro to Forms.mp4
│ ├── 011 Nesting Elements (1).srt
│ ├── 005 Generate the Root Node (1).mp4
│ ├── 062 Form Action.mp4
│ ├── 006 Dad Joke Break.vtt
│ ├── 031 Raw API (1).mp4
│ ├── 052 Styling.vtt
│ ├── 098 Dad Joke Break Rendering Arrays.vtt
│ ├── 099 Outro to React Fundamentals.mp4
│ ├── 067 Submission (1).vtt
│ ├── 020 Spread props.mp4
│ ├── 015 Intro to Using JSX.mp4
│ ├── 084 Composition.srt
│ ├── 059 Intro to Forms.vtt
│ ├── 044 Default Props.srt
│ ├── 079 Hidden Inputs (1).vtt
│ ├── 079 Hidden Inputs (1).srt
│ ├── 037 Intro to TypeScript.mp4
│ ├── 027 Intro to Custom Components.vtt
│ ├── 024 Fragments.srt
│ ├── 012 Deep Nesting Elements.vtt
│ ├── 093 Key prop (1).mp4
│ ├── 007 Intro to Raw React APIs.vtt
│ ├── 013 Deep Nesting Elements (1).vtt
│ ├── 094 Focus State.mp4
│ ├── 058 Dad Joke Break Styling.vtt
│ ├── 083 Intro to Error Boundaries.vtt
│ ├── 064 Input Types.mp4
│ ├── 061 Form (1).srt
│ ├── 083 Intro to Error Boundaries.srt
│ ├── 062 Form Action.srt
│ ├── 074 Select.vtt
│ ├── 055 Custom Component (1).srt
│ ├── 046 Reduce Duplication.mp4
│ ├── 088 Reset.vtt
│ ├── 065 Input Types (1).srt
│ ├── 073 Checkbox (1).mp4
│ ├── 058 Dad Joke Break Styling.mp4
│ ├── 012 Deep Nesting Elements.srt
│ ├── 070 Dad Joke Break Forms.srt
│ ├── 054 Custom Component.mp4
│ ├── 042 Derive Types.srt
│ ├── 094 Focus State.srt
│ ├── 057 Size Prop (1).mp4
│ ├── 075 Select (1).mp4
│ ├── 091 Intro to Rendering Arrays.vtt
│ ├── 072 Checkbox.vtt
│ ├── 052 Styling.mp4
│ ├── 022 Nesting JSX.srt
│ ├── 035 Props (1).vtt
│ ├── 002 Hello World in JS.mp4
│ ├── 014 Dad Joke Break Raw React APIs.srt
│ ├── 078 Hidden Inputs.mp4
│ ├── 010 Nesting Elements.mp4
│ ├── 059 Intro to Forms.srt
│ ├── 081 Default Value (1).vtt
│ ├── 069 Form Actions (1).srt
│ ├── 022 Nesting JSX.vtt
│ ├── 063 Form Action (1).vtt
│ ├── 069 Form Actions (1).vtt
│ ├── 065 Input Types (1).vtt
│ ├── 066 Submission.vtt
│ ├── 075 Select (1).vtt
│ ├── 091 Intro to Rendering Arrays.srt
│ ├── 019 Interpolation (1).mp4
│ ├── 027 Intro to Custom Components.mp4
│ ├── 060 Form.mp4
│ ├── 038 Props (2).srt
│ ├── 046 Reduce Duplication.srt
│ ├── 009 Create React Elements (1).vtt
│ ├── 021 Spread props (1).vtt
│ ├── 056 Size Prop.vtt
│ ├── 007 Intro to Raw React APIs.srt
│ ├── 045 Default Props (1).mp4
│ ├── 081 Default Value (1).srt
│ ├── 096 Key Reset.mp4
│ ├── 092 Key prop.vtt
│ ├── 095 Focus State (1).vtt
│ ├── 034 Props.mp4
│ ├── 012 Deep Nesting Elements.mp4
│ ├── 040 Narrow Types.vtt
│ ├── 029 Simple Function (1).srt
│ ├── 083 Intro to Error Boundaries.mp4
│ ├── 064 Input Types.vtt
│ ├── 053 Styling (1).mp4
│ ├── 074 Select.srt
│ ├── 041 Narrow Types (1).srt
│ ├── 068 Form Actions.mp4
│ ├── 028 Simple Function.mp4
│ ├── 033 JSX Components (1).mp4
│ ├── 008 Create React Elements.vtt
│ ├── 049 Satisfies (1).mp4
│ ├── 097 Key Reset (1).srt
│ ├── 086 Other Errors.mp4
│ ├── 072 Checkbox.srt
│ ├── 042 Derive Types.mp4
│ ├── 023 Nesting JSX (1).mp4
│ ├── 056 Size Prop.srt
│ ├── 085 Composition (1).srt
│ ├── 031 Raw API (1).vtt
│ ├── 032 JSX Components.srt
│ ├── 047 Reduce Duplication (1).srt
│ ├── 053 Styling (1).srt
│ ├── 065 Input Types (1).mp4
│ ├── 030 Raw API.vtt
│ ├── 035 Props (1).srt
│ ├── 071 Intro to Inputs.mp4
│ ├── 034 Props.vtt
│ ├── 054 Custom Component.srt
│ ├── 051 Intro to Styling.vtt
│ ├── 053 Styling (1).vtt
│ ├── 026 Dad Joke Break Using JSX.srt
├── 8 Bonus. Interviews With Experts
│ ├── 8. Michelle Beckles on Community Building and Developer Health .srt
│ ├── 1. Getting into Open Source with Aakansha Doshi .mp4
│ ├── 2. Enhancing Forms using React 19 with Aurora Scharff .mp4
│ ├── 11. Lydia Hallie on JavaScript, React, and the Future of Web Development .mp4
│ ├── 10. Sam Selikoff on React's Impact in Modern Web Development .vtt
│ ├── 9. Under the Hood of React 19 with Rick Hanlon .srt
│ ├── 5. Kateryna Porshnieva on Building Accessible Apps with React 19 .vtt
│ ├── 11. Lydia Hallie on JavaScript, React, and the Future of Web Development .vtt
│ ├── 1. Getting into Open Source with Aakansha Doshi .srt
│ ├── 14. Sunil Pai on Changing Lives with Powerful Software, PartyKit, and Durable Objects .vtt
│ ├── 13. The Importance of Accessibility in Modern Web Development With Shruti Kapoor .srt
│ ├── 12. Sebastian Silbermann on Testing, Tooling, and Transitions With React 19 .mp4
│ ├── Interviews With Experts.txt
│ ├── 14. Sunil Pai on Changing Lives with Powerful Software, PartyKit, and Durable Objects .srt
│ ├── 4. Evan Bacon brings React Server Components to React Native .vtt
│ ├── 15. Theo Browne on His Personal Experience as a Web Developer .srt
│ ├── 14. Sunil Pai on Changing Lives with Powerful Software, PartyKit, and Durable Objects .mp4
│ ├── 1. Getting into Open Source with Aakansha Doshi .vtt
│ ├── 9. Under the Hood of React 19 with Rick Hanlon .mp4
│ ├── 6. React's Evolution_ Past, Present, and Future with Lee Robinson .vtt
│ ├── 16. Dominik Dorfmeister on His Open-Source Journey .vtt
│ ├── 6. React's Evolution_ Past, Present, and Future with Lee Robinson .srt
│ ├── 3. Jenna Smith on AI, Building Radix, and Tokenami .vtt
│ ├── 3. Jenna Smith on AI, Building Radix, and Tokenami .mp4
│ ├── 10. Sam Selikoff on React's Impact in Modern Web Development .mp4
│ ├── 7. Matt Brophy on Remix, React Router, and Open-Source .srt
│ ├── 13. The Importance of Accessibility in Modern Web Development With Shruti Kapoor .vtt
│ ├── 7. Matt Brophy on Remix, React Router, and Open-Source .vtt
│ ├── 8. Michelle Beckles on Community Building and Developer Health .vtt
│ ├── 4. Evan Bacon brings React Server Components to React Native .srt
│ ├── 2. Enhancing Forms using React 19 with Aurora Scharff .srt
│ ├── 8. Michelle Beckles on Community Building and Developer Health .mp4
│ ├── 7. Matt Brophy on Remix, React Router, and Open-Source .mp4
│ ├── 12. Sebastian Silbermann on Testing, Tooling, and Transitions With React 19 .srt
│ ├── 9. Under the Hood of React 19 with Rick Hanlon .vtt
│ ├── 5. Kateryna Porshnieva on Building Accessible Apps with React 19 .mp4
│ ├── 10. Sam Selikoff on React's Impact in Modern Web Development .srt
│ ├── 11. Lydia Hallie on JavaScript, React, and the Future of Web Development .srt
│ ├── 16. Dominik Dorfmeister on His Open-Source Journey .srt
│ ├── 16. Dominik Dorfmeister on His Open-Source Journey .mp4
│ ├── 3. Jenna Smith on AI, Building Radix, and Tokenami .srt
│ ├── 13. The Importance of Accessibility in Modern Web Development With Shruti Kapoor .mp4
│ ├── 6. React's Evolution_ Past, Present, and Future with Lee Robinson .mp4
│ ├── 12. Sebastian Silbermann on Testing, Tooling, and Transitions With React 19 .vtt
│ ├── 2. Enhancing Forms using React 19 with Aurora Scharff .vtt
│ ├── 4. Evan Bacon brings React Server Components to React Native .mp4
│ ├── 15. Theo Browne on His Personal Experience as a Web Developer .mp4
│ ├── 5. Kateryna Porshnieva on Building Accessible Apps with React 19 .srt
│ ├── 15. Theo Browne on His Personal Experience as a Web Developer .vtt
├── 2 React Hooks
│ ├── 016 useEffect (1).vtt
│ ├── 030 Refs (1).mp4
│ ├── 045 Add Game History Feature.mp4
│ ├── 007 Derive State.mp4
│ ├── 037 useId.vtt
│ ├── 006 Controlling Inputs (1).mp4
│ ├── 011 Init Callback.srt
│ ├── 032 Dependencies (1).vtt
│ ├── 017 Effect Cleanup.srt
│ ├── 018 Effect Cleanup (1).vtt
│ ├── 002 Intro to Managing UI State.vtt
│ ├── 001 React Hooks Intro.srt
│ ├── 026 Colocate State (1).mp4
│ ├── 007 Derive State.vtt
│ ├── 041 setState callback.mp4
│ ├── 041 setState callback.vtt
│ ├── 046 Add Game History Feature (1).mp4
│ ├── 020 Intro to Lifting State.mp4
│ ├── 023 Lift More State.srt
│ ├── 032 Dependencies (1).srt
│ ├── 045 Add Game History Feature.srt
│ ├── 014 Intro to Side-Effects.mp4
│ ├── 022 Lift State (1).vtt
│ ├── 023 Lift More State.mp4
│ ├── 033 Primitive Dependencies.mp4
│ ├── 013 Dad Joke Break Managing UI State.srt
│ ├── 009 Initialize State.srt
│ ├── 036 Intro to Unique IDs.mp4
│ ├── 003 useState.vtt
│ ├── 027 Dad Joke Break Lifting State.mp4
│ ├── 035 Dad Joke Break DOM Side-Effects.srt
│ ├── 034 Primitive Dependencies (1).mp4
│ ├── 033 Primitive Dependencies.srt
│ ├── 029 Refs.vtt
│ ├── 039 Dad Joke Break Unique IDs.vtt
│ ├── 011 Init Callback.mp4
│ ├── 036 Intro to Unique IDs.vtt
│ ├── 023 Lift More State.vtt
│ ├── 010 Initialize State (1).srt
│ ├── 005 Controlling Inputs.srt
│ ├── 046 Add Game History Feature (1).srt
│ ├── 004 useState (1).mp4
│ ├── 037 useId.mp4
│ ├── 025 Colocate State.mp4
│ ├── 013 Dad Joke Break Managing UI State.mp4
│ ├── 018 Effect Cleanup (1).srt
│ ├── 001 React Hooks Intro.mp4
│ ├── 022 Lift State (1).srt
│ ├── 018 Effect Cleanup (1).mp4
│ ├── 031 Dependencies.vtt
│ ├── 009 Initialize State.vtt
│ ├── 008 Derive State (1).mp4
│ ├── 027 Dad Joke Break Lifting State.vtt
│ ├── 001 React Hooks Intro.vtt
│ ├── 016 useEffect (1).srt
│ ├── 021 Lift State.srt
│ ├── 039 Dad Joke Break Unique IDs.mp4
│ ├── 012 Init Callback (1).vtt
│ ├── 006 Controlling Inputs (1).vtt
│ ├── 019 Dad Joke Break Side-Effects.vtt
│ ├── 024 Lift More State (1).srt
│ ├── 002 Intro to Managing UI State.mp4
│ ├── 039 Dad Joke Break Unique IDs.srt
│ ├── 030 Refs (1).srt
│ ├── 025 Colocate State.srt
│ ├── 004 useState (1).srt
│ ├── 040 Intro to Tic Tac Toe.srt
│ ├── 047 Dad Joke Break Tic Tac Toe.vtt
│ ├── 032 Dependencies (1).mp4
│ ├── 005 Controlling Inputs.vtt
│ ├── 008 Derive State (1).srt
│ ├── 021 Lift State.mp4
│ ├── 038 useId (1).vtt
│ ├── 017 Effect Cleanup.vtt
│ ├── 011 Init Callback.vtt
│ ├── 012 Init Callback (1).srt
│ ├── 030 Refs (1).vtt
│ ├── 034 Primitive Dependencies (1).srt
│ ├── 042 setState callback (1).mp4
│ ├── 002 Intro to Managing UI State.srt
│ ├── 005 Controlling Inputs.mp4
│ ├── 026 Colocate State (1).srt
│ ├── 048 Outro to React Hooks.vtt
│ ├── 040 Intro to Tic Tac Toe.mp4
│ ├── 036 Intro to Unique IDs.srt
│ ├── 040 Intro to Tic Tac Toe.vtt
│ ├── 013 Dad Joke Break Managing UI State.vtt
│ ├── 038 useId (1).mp4
│ ├── 026 Colocate State (1).vtt
│ ├── 010 Initialize State (1).vtt
│ ├── 015 useEffect.mp4
│ ├── 016 useEffect (1).mp4
│ ├── 006 Controlling Inputs (1).srt
│ ├── 029 Refs.srt
│ ├── 031 Dependencies.srt
│ ├── 008 Derive State (1).vtt
│ ├── 035 Dad Joke Break DOM Side-Effects.vtt
│ ├── 014 Intro to Side-Effects.vtt
│ ├── 037 useId.srt
│ ├── 007 Derive State.srt
│ ├── 028 Intro to DOM Side-Effects.vtt
│ ├── 048 Outro to React Hooks.srt
│ ├── 044 Preserve State in localStorage (1).mp4
│ ├── 029 Refs.mp4
│ ├── 044 Preserve State in localStorage (1).srt
│ ├── 043 Preserve State in localStorage.srt
│ ├── 004 useState (1).vtt
│ ├── 022 Lift State (1).mp4
│ ├── 047 Dad Joke Break Tic Tac Toe.mp4
│ ├── 015 useEffect.srt
│ ├── 014 Intro to Side-Effects.srt
│ ├── 010 Initialize State (1).mp4
│ ├── 024 Lift More State (1).vtt
│ ├── 019 Dad Joke Break Side-Effects.srt
│ ├── 047 Dad Joke Break Tic Tac Toe.srt
│ ├── 028 Intro to DOM Side-Effects.srt
│ ├── 043 Preserve State in localStorage.vtt
│ ├── 003 useState.srt
│ ├── 028 Intro to DOM Side-Effects.mp4
│ ├── 044 Preserve State in localStorage (1).vtt
│ ├── 042 setState callback (1).srt
│ ├── 048 Outro to React Hooks.mp4
│ ├── 046 Add Game History Feature (1).vtt
│ ├── 019 Dad Joke Break Side-Effects.mp4
│ ├── 034 Primitive Dependencies (1).vtt
│ ├── 021 Lift State.vtt
│ ├── 025 Colocate State.vtt
│ ├── 012 Init Callback (1).mp4
│ ├── 041 setState callback.srt
│ ├── 031 Dependencies.mp4
│ ├── 020 Intro to Lifting State.srt
│ ├── 015 useEffect.vtt
│ ├── 042 setState callback (1).vtt
│ ├── 027 Dad Joke Break Lifting State.srt
│ ├── 009 Initialize State.mp4
│ ├── 045 Add Game History Feature.vtt
│ ├── 038 useId (1).srt
│ ├── 020 Intro to Lifting State.vtt
│ ├── 017 Effect Cleanup.mp4
│ ├── 024 Lift More State (1).mp4
│ ├── 035 Dad Joke Break DOM Side-Effects.mp4
│ ├── 043 Preserve State in localStorage.mp4
│ ├── 033 Primitive Dependencies.vtt
│ ├── 003 useState.mp4
├── 6 React Performance
│ ├── 44. Component Memoization _Solution.vtt
│ ├── 33. Dad Joke Break Code Splitting.vtt
│ ├── 2. Intro to Element Optimization.srt
│ ├── 3. Reusing Elements _Problem.vtt
│ ├── 41. Dad Joke Break Expensive Calculations.mp4
│ ├── 30. Eager Loading _Solution.mp4
│ ├── 22. Concurrent Rendering Intro.vtt
│ ├── 49. Dad Joke Break Optimize Rendering.vtt
│ ├── 41. Dad Joke Break Expensive Calculations.srt
│ ├── 5. Element Props _Problem.vtt
│ ├── 34. Intro to Expensive Calculations.srt
│ ├── 49. Dad Joke Break Optimize Rendering.srt
│ ├── 25. Dad Joke Break Concurrent Rendering.vtt
│ ├── 43. Component Memoization _ Problem.vtt
│ ├── 44. Component Memoization _Solution.srt
│ ├── 29. Eager Loading _Problem.srt
│ ├── 39. Async Results _Problem.srt
│ ├── 36. useMemo _Solution.srt
│ ├── 9. Memoize Elements _Problem.vtt
│ ├── 38. Web Worker _Solution.vtt
│ ├── 24. useDeferredValue + memo _Solution.vtt
│ ├── 12. Memoize Components _Solution.vtt
│ ├── 36. useMemo _Solution.vtt
│ ├── 52. Virtualizer _Solution.vtt
│ ├── 8. Context _Solution.vtt
│ ├── 15. Memoize Context _Problem.vtt
│ ├── 32. Transitions _ Solution.vtt
│ ├── 23. useDeferredValue + memo _Problem.srt
│ ├── 45. Custom Comparator _ Problem.srt
│ ├── 4. Reusing Elements _Solution.srt
│ ├── 15. Memoize Context _Problem.srt
│ ├── 12. Memoize Components _Solution.srt
│ ├── 48. Primitives _Solution.vtt
│ ├── 40. Async Results _Solution.vtt
│ ├── 47. Primitives _Problem.vtt
│ ├── 16. Memoize Context _Solution.vtt
│ ├── 19. Split Context _Problem.vtt
│ ├── 47. Primitives _Problem.srt
│ ├── 42. Intro to Optimize Rendering.vtt
│ ├── 18. Provider Component _Solution.vtt
│ ├── 11. Memoize Components _ Problem.srt
│ ├── 17. Provider Component _Problem.vtt
│ ├── React Performance.txt
│ ├── 53. Dad Joke Break Windowing.mp4
│ ├── 31. Transitions _Problem.mp4
│ ├── 15. Memoize Context _Problem.mp4
│ ├── 4. Reusing Elements _Solution.vtt
│ ├── 43. Component Memoization _ Problem.srt
│ ├── 53. Dad Joke Break Windowing.srt
│ ├── 34. Intro to Expensive Calculations.vtt
│ ├── 21. Dad Joke Break Optimize Context.srt
│ ├── 25. Dad Joke Break Concurrent Rendering.srt
│ ├── 20. Split Context _Solution.vtt
│ ├── 54. Outro to React Performance.vtt
│ ├── 52. Virtualizer _Solution.srt
│ ├── 17. Provider Component _Problem.mp4
│ ├── 31. Transitions _Problem.vtt
│ ├── 31. Transitions _Problem.srt
│ ├── 7. Context _ Problem.vtt
│ ├── 27. lazy _ Problem.srt
│ ├── 28. lazy _Solution.vtt
│ ├── 8. Context _Solution.srt
│ ├── 48. Primitives _Solution.srt
│ ├── 24. useDeferredValue + memo _Solution.srt
│ ├── 50. Intro to Windowing.srt
│ ├── 14. Intro to Optimize Context.vtt
│ ├── 6. Element Props _ Solution.vtt
│ ├── 40. Async Results _Solution.srt
│ ├── 10. Memoize Elements _Solution.vtt
│ ├── 10. Memoize Elements _Solution.srt
│ ├── 13. Dad Joke Break Element Optimization.srt
│ ├── 33. Dad Joke Break Code Splitting.mp4
│ ├── 16. Memoize Context _Solution.srt
│ ├── 20. Split Context _Solution.srt
│ ├── 1. React Performance Intro.vtt
│ ├── 32. Transitions _ Solution.srt
│ ├── 5. Element Props _Problem.mp4
│ ├── 51. Virtualizer _Problem.vtt
│ ├── 7. Context _ Problem.srt
│ ├── 46. Custom Comparator _Solution.srt
│ ├── 17. Provider Component _Problem.srt
│ ├── 26. Intro to Code Splitting.srt
│ ├── 37. Web Worker _Problem.vtt
│ ├── 49. Dad Joke Break Optimize Rendering.mp4
│ ├── 54. Outro to React Performance.srt
│ ├── 27. lazy _ Problem.vtt
│ ├── 30. Eager Loading _Solution.vtt
│ ├── 50. Intro to Windowing.vtt
│ ├── 19. Split Context _Problem.srt
│ ├── 35. useMemo _Problem.vtt
│ ├── 6. Element Props _ Solution.srt
│ ├── 35. useMemo _Problem.srt
│ ├── 45. Custom Comparator _ Problem.vtt
│ ├── 33. Dad Joke Break Code Splitting.srt
│ ├── 26. Intro to Code Splitting.vtt
│ ├── 2. Intro to Element Optimization.vtt
│ ├── 21. Dad Joke Break Optimize Context.vtt
│ ├── 11. Memoize Components _ Problem.vtt
│ ├── 18. Provider Component _Solution.srt
│ ├── 5. Element Props _Problem.srt
│ ├── 13. Dad Joke Break Element Optimization.mp4
│ ├── 46. Custom Comparator _Solution.vtt
│ ├── 23. useDeferredValue + memo _Problem.vtt
│ ├── 13. Dad Joke Break Element Optimization.vtt
│ ├── 9. Memoize Elements _Problem.srt
│ ├── 39. Async Results _Problem.vtt
│ ├── 38. Web Worker _Solution.srt
│ ├── 16. Memoize Context _Solution.mp4
│ ├── 25. Dad Joke Break Concurrent Rendering.mp4
│ ├── 37. Web Worker _Problem.srt
│ ├── 53. Dad Joke Break Windowing.vtt
│ ├── 11. Memoize Components _ Problem.mp4
│ ├── 1. React Performance Intro.srt
│ ├── 3. Reusing Elements _Problem.srt
│ ├── 4. Reusing Elements _Solution.mp4
│ ├── 14. Intro to Optimize Context.srt
│ ├── 42. Intro to Optimize Rendering.srt
│ ├── 29. Eager Loading _Problem.vtt
│ ├── 28. lazy _Solution.srt
│ ├── 21. Dad Joke Break Optimize Context.mp4
│ ├── 22. Concurrent Rendering Intro.srt
│ ├── 41. Dad Joke Break Expensive Calculations.vtt
│ ├── 30. Eager Loading _Solution.srt
│ ├── 51. Virtualizer _Problem.srt
│ ├── 43. Component Memoization _ Problem.mp4
│ ├── 24. useDeferredValue + memo _Solution.mp4
│ ├── 36. useMemo _Solution.mp4
│ ├── 20. Split Context _Solution.mp4
│ ├── 7. Context _ Problem.mp4
│ ├── 14. Intro to Optimize Context.mp4
│ ├── 32. Transitions _ Solution.mp4
│ ├── 39. Async Results _Problem.mp4
│ ├── 37. Web Worker _Problem.mp4
│ ├── 54. Outro to React Performance.mp4
│ ├── 2. Intro to Element Optimization.mp4
│ ├── 28. lazy _Solution.mp4
│ ├── 46. Custom Comparator _Solution.mp4
│ ├── 48. Primitives _Solution.mp4
│ ├── 12. Memoize Components _Solution.mp4
│ ├── 40. Async Results _Solution.mp4
│ ├── 1. React Performance Intro.mp4
│ ├── 52. Virtualizer _Solution.mp4
│ ├── 18. Provider Component _Solution.mp4
│ ├── 35. useMemo _Problem.mp4
│ ├── 47. Primitives _Problem.mp4
│ ├── 45. Custom Comparator _ Problem.mp4
│ ├── 50. Intro to Windowing.mp4
│ ├── 9. Memoize Elements _Problem.mp4
│ ├── 8. Context _Solution.mp4
│ ├── 51. Virtualizer _Problem.mp4
│ ├── 42. Intro to Optimize Rendering.mp4
│ ├── 10. Memoize Elements _Solution.mp4
│ ├── 26. Intro to Code Splitting.mp4
│ ├── 6. Element Props _ Solution.mp4
│ ├── 23. useDeferredValue + memo _Problem.mp4
│ ├── 29. Eager Loading _Problem.mp4
│ ├── 19. Split Context _Problem.mp4
│ ├── 27. lazy _ Problem.mp4
│ ├── 38. Web Worker _Solution.mp4
│ ├── 3. Reusing Elements _Problem.mp4
│ ├── 22. Concurrent Rendering Intro.mp4
│ ├── 34. Intro to Expensive Calculations.mp4
│ ├── 44. Component Memoization _Solution.mp4