惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
小众软件
小众软件
Engineering at Meta
Engineering at Meta
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google DeepMind News
Google DeepMind News
Security Archives - TechRepublic
Security Archives - TechRepublic
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MongoDB | Blog
MongoDB | Blog
L
LINUX DO - 热门话题
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Help Net Security
Martin Fowler
Martin Fowler
G
GRAHAM CLULEY
Simon Willison's Weblog
Simon Willison's Weblog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
V
Vulnerabilities – Threatpost
云风的 BLOG
云风的 BLOG
博客园_首页
C
Cybersecurity and Infrastructure Security Agency CISA
量子位
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
Intezer
Scott Helme
Scott Helme
A
About on SuperTechFans
博客园 - 司徒正美
Hacker News: Ask HN
Hacker News: Ask HN
The GitHub Blog
The GitHub Blog
Forbes - Security
Forbes - Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Spread Privacy
Spread Privacy
T
Tailwind CSS Blog
S
Security Affairs
宝玉的分享
宝玉的分享

Kent C. Dodds Blog

Implementing Hybrid Semantic + Lexical Search Simplifying Containers with Cloudflare Sandboxes Migrating to Workspaces and Nx Offloading FFmpeg with Cloudflare Building Semantic Search on my Content Helping YOU ask ME questions with AI How I used Cursor to Migrate Frameworks The Dow's Start on the Covenant Path 2025 in Review The next chapter: EpicAI.pro AI is taking your job How I increased my visibility Launching Epic Web 2023 in Review Stop Being a Junior RSC with Dan Abramov and Joe Savona Live Stream Fixing a Memory Leak in a Production Node.js App 2022 in Review My Car Accident I Migrated from a Postgres Cluster to Distributed SQLite with LiteFS I'm building EpicWeb.dev A review of my time at Remix Remix: The Yang to React's Yin How I help you build better websites Why I Love Remix The State Initializer Pattern How to React ⚛️ Get a catch block error message with TypeScript Building an awesome image loading experience How Remix makes CSS clashes predictable Introducing the new kentcdodds.com How I built a modern website in 2021 How to use React Context effectively Static vs Unit vs Integration vs E2E Testing for Frontend Apps The Testing Trophy and Testing Classifications Array reduce vs chaining vs for loop Don't Solve Problems, Eliminate Them Super Simple Start to Remix Super Simple Start to ESModules in Node.js JavaScript Pass By Value Function Parameters How to write a Constrained Identity Function (CIF) in TypeScript How to optimize your context value How to write a React Component in TypeScript TypeScript Function Syntaxes Listify a JavaScript Array Build vs Buy: Component Libraries edition Using fetch with TypeScript Wrapping React.useState with TypeScript Define function overload types with TypeScript 2020 in Review Business and Engineering alignment Hi, thanks for reaching out to me 👋 useEffect vs useLayoutEffect Super simple start to Firebase functions Super simple start to Netlify functions Super Simple Start to css variables Favor Progress Over Pride in Open Source Testing Implementation Details How getting into Open Source has been awesome for me useState lazy initialization and function updates Use ternaries rather than && in JSX Application State Management with React Use react-error-boundary to handle errors in React JavaScript to Know for React How I structure Express apps What open source project should I contribute to? When I follow TDD AHA Programming 💡 How I Record Educational Videos Should I write a test or fix a bug? Stop mocking fetch Intentional Career Building Improve test error messages of your abstractions Tracing user interactions with React Eliminate an entire category of bugs with a few simple tools Common mistakes with React Testing Library Super Simple Start to React Stop using client-side route redirects The State Reducer Pattern with React Hooks Function forms Replace axios with a simple custom fetch wrapper How to test custom React hooks React Production Performance Monitoring Should I useState or useReducer? Stop using isLoading booleans Make Your Test Fail Make your own DevTools An Argument for Automation Fix the "not wrapped in act(...)" warning Super Simple Start to ESModules in the Browser Implementing a simple state machine library in JavaScript 2010s Decade in Review Why users care about how you write code Why I avoid nesting closures Don't call a React function component Why your team needs TestingJavaScript.com Inversion of Control Understanding React's key prop How to Enable React Concurrent Mode Profile a React App for Performance
Learn React Fundamentals 🆓 and Advanced Patterns ⚛️ 🎁
Andrew Del Prete @AndrewDelPrete · 2017-12-04 · via Kent C. Dodds Blog

I couldn't be more excited to introduce you to what I can call my best work to date: Two new video courses available now on egghead.io! The beginner material is free forever and the advanced stuff is worth a subscription so I encourage you to give them a look!

The Beginner's Guide to ReactJS

  1. Introduction to The Beginner's Guide to ReactJS (2:07)
  2. Write Hello World with raw React APIs (3:24)
  3. Use JSX with React (5:48)
  4. Create Custom React Components (5:15)
  5. Validate Custom React Component Props with PropTypes (3:30)
  6. Conditionally Render A React Component (2:43)
  7. Rerender a React Application (3:17)
  8. Style React Components (5:36)
  9. Use Event Handlers with React (3:42)
  10. Use Component State with React (7:09)
  11. Stop Memory Leaks with componentWillUnmount Lifecycle Method in React(1:14)
  12. Use Class Components with React (4:16)
  13. Manipulate the DOM with React refs (2:23)
  14. Make Basic Forms with React (3:35)
  15. Make Dynamic Forms with React (3:42)
  16. Controlling Form Values with React (8:48)
  17. Use the key prop when Rendering a List with React (4:29)
  18. Make HTTP Requests with React (3:29)
  19. Build and deploy a React Application (3:02)

This course is for React newbies and those looking to get a better understanding of React fundamentals. With a focus on React fundamentals, you'll come out of this course knowing what problems React can solve for you and how it goes about solving those problems. You will have a good grasp on what JSX is and how it translates to regular JavaScript function calls and objects.

Each lesson in this course is just a single index.html file which will help you keep your focus on learning React and not distracted by all the tools that make production applications work. The course wraps up with a lesson on how to move from these index.html files to a more production ready development environment and even how to deploy your app to a great service like Netlify.

Enjoy!

Advanced React Component Patterns

  1. Introducing Advanced React Component Patterns (1:44)
  2. Build a Toggle Component (2:01)
  3. Write Compound Components (4:06)
  4. Make Compound React Components Flexible (4:01)
  5. Make Enhanced React Components with Higher Order Components (3:22)
  6. Handle prop namespace clashes with Higher Order Components (3:47)
  7. Improve debuggability of Higher Order Components (4:43)
  8. Handle ref props with Higher Order Components (2:54)
  9. Improve Unit Testability of Higher Order Components (2:45)
  10. Handle static properties properly with Higher Order Components (3:02)
  11. Use Render Props with React (5:25)
  12. Use Prop Collections with Render Props (2:05)
  13. Use Prop Getters with Render Props (6:12)
  14. Use Component State Initializers (2:46)
  15. Make Controlled React Components with Control Props (4:06)
  16. Implement a React Context Provider (6:47)
  17. Implement a Higher Order Component with Render Props (1:52)
  18. Rerender Descendants Through shouldComponentUpdate (3:19)
  19. Use Redux with Render Props (6:49)

The goal of this course is to give you the knowledge of advanced patterns you can use to make React components that are more flexible, simpler, and more fun to build, use, and maintain. We'll start with a simple <Toggle /> component which we'll progressively refactor to each of the patterns so you can see the relative trade-offs of the patterns and how they can be used together to increase the usefulness of your component while at the same time simplifying things for everyone.

Having built and shipped components using each of these patterns, I'll help you understand and weigh the tradeoffs of each of them and you'll come to intuitively know where to apply each pattern in your own components. When you're finished with this course, hopefully you'll have a list of actionable things you can do to rework the components that you're building to make them more flexible, simpler, and more fun to build, use, and maintain.

Enjoy!

Free! 🤑

The Beginner's course is joining the ever growing egghead.io "Community Resources" which means it will be free forever! I'm totally amazed by egghead and all the free stuff they sponsor. Thank you egghead!!

The Advanced course was free for a week but is now used to fund egghead's community resources by converting to subscriber-only content. Now's the best time to get a pro account. egghead very rarely does sales, but it's running one right now! For a limited time, you can get an egghead subscription for 30% off. See egghead.io/gifts for more information.

Reactions

I've made a twitter moment with some reactions to the courses. Here are some of my personal favorites:

Tolu avatar

Tolu @afrocode_

The react router source code I had been trying to wrap my head around just became clearer after watching @kentcdodds advanced react component patterns video. I just became smarter all of a sudden lol 🙏

1 21

(Reactions from @dissimile and @rossipedia were also among my favorites, but those tweets have since been deleted.)

I'm really excited by all these positive responses! Thanks everyone!

Conclusion

I can't tell you how excited I am for you to watch these things! If you learn anything or enjoy the courses, I would ask you to do any of the following:

  1. Become an egghead.io subscriber to help support the community resources and get access to the 2500+ videos already on there!
  2. Tweet this blog post! Or retweet my tweet about it :)
  3. Upvote and discuss this blog post and the courses on Reddit
  4. Follow me on twitter to keep up with what I work on next
  5. Subscribe to my weekly newsletter 💌
  6. Write a blog post about your experience watching my courses!

Thanks everyone! And Merry Christmas! 🎁 🎄