RRU 007: Breaking up with Higher Order Components with David Atchley




React Round Up show

Summary: <p><strong>Panel: </strong></p> <ul> <li>Charles Max Wood</li> <li>Nader Dabit</li> <li>Cory House</li> <li>Kent C Dodds</li> </ul> <p><strong>Special Guests: </strong>David Atchley</p> <p>In this episode of React Round Up, the panel discuss breaking up with higher-order components with David Atchley. David has been doing software development for 24 years now and has worked mostly in web development. He has worked at many places from start-ups to large companies and does client work currently for <a href="https://tandem.ly/">Tandem.ly</a>. They talk about what higher-order components and render props are and when you would want to use them to help you in your code. They also touch on overuse and misuse of applications and coding tools and the difference between using render props and HOCs.</p> <p><strong>In particular, we dive pretty deep on:</strong></p> <ul> <li>David intro</li> <li>What are higher-order components?</li> <li>What are render props?</li> <li>Higher-order components are patterned after higher-order functions</li> <li>Connect from React Redux</li> <li><a href="https://reactjs.org/">React</a></li> <li>What are the use cases for higher-order components?</li> <li><a href="https://redux.js.org/">Redux</a></li> <li>Would you suggest writing a render prop instead in certain situations?</li> <li>Deciding to use a HOC or a render prop depends on the situation</li> <li>Think critically about the applications you are using</li> <li><a href="https://egghead.io/courses/advanced-react-component-patterns">Kent’s <em>Advanced React Component Patterns </em>Egghead Course</a></li> <li>Difference between render props and HOCs</li> <li>Build an HOC out of a render prop if you want to share code</li> <li> <a href="https://reactjs.org/docs/context.html">Context API</a> from React</li> <li>Concern with new Context API</li> <li>Problem with overuse</li> <li>How do you help people avoid overuse and misuse?</li> <li><a href="https://github.com/jamiebuilds/unstated">Unstated library by James Kyle</a></li> <li>Start developing code at the local level</li> <li><a href="https://facebook.github.io/react-native/">React Native</a></li> <li>And much, much more!</li> </ul> <p><strong>Links:</strong></p> <ul> <li><a href="https://tandem.ly/">Tandem.ly</a></li> <li><a href="https://reactjs.org/">React</a></li> <li><a href="https://redux.js.org/">Redux</a></li> <li><a href="https://egghead.io/courses/advanced-react-component-patterns">Kent’s Egghead Course</a></li> <li><a href="https://reactjs.org/docs/context.html">Context API from React</a></li> <li><a href="https://github.com/jamiebuilds/unstated">Unstated library by James Kyle</a></li> <li><a href="https://facebook.github.io/react-native/">React Native</a></li> <li><a href="https://github.com/datchley">David’s GitHub</a></li> <li><a href="https://twitter.com/tuxz0r">@Tuxz0r</a></li> <li><a href="https://medium.com/tandemly">Tandem.ly Medium</a></li> </ul> <p><strong>Picks:</strong></p> <p>Charles</p> <ul> <li><a href="https://www.shellypalmer.com/2017/04/id-pay-500000-year-cant-work/"><em>I’d Pay You $500,000 a Year, but You Can’t Do the Work</em> by Shelly Palmer</a></li> <li><a href="https://www.amazon.com/Liars-Progressives-Exploit-Fears-Control/dp/1476798885"><em>Liars</em> by Glenn Beck</a></li> </ul> <p>Cory</p> <ul> <li><a href="https://hackernoon.com/introducing-codesandbox-live-real-time-code-collaboration-in-the-browser-6d508cfc70c9">CodeSandbox Live</a></li> <li><a href="https://babeljs.io/repl/">Babel repl</a></li> <li>React Cheat Sheet</li> <li><a href="https://conferences.oreilly.com/fluent/fl-ca">Fluent Conf</a></li> </ul> <p>Nader</p> <ul> <li><a href="https://www.amazon.com/Shoe-Dog-Memoir-Creator-Nike-ebook/dp/B0176M1A44"><em>Shoe Dog</em> by Phil Knight</a></li> <li><a href="https://tylermcginnis.com/building-serverless-react-graphql-apps-with-aws-appsync/">Nader’s Blog Post</a></li> </ul> <p>Kent</p> <ul> <li> <a href="https://blog.kentcdodds.com/answers-to-common-questions-about-render-props-a9f84bb12d5d"><em>Answers to common questions about render props</em></a> blog post</li> <li> <a href="https://medium.com/dailyjs/reacts-%25EF%25B8%258F-new-context-api-70c9fe01596b"><em>React’s new Context API</em></a> blog post</li> <li><a href="https://github.com/jamesplease/react-composer">React Composer</a></li> <li><a href="https://brandonsanderson.com/">Brandon Sanderson</a></li> <li><a href="https://hackernoon.com/introducing-codesandbox-live-real-time-code-collaboration-in-the-browser-6d508cfc70c9">CodeSandbox Live</a></li> </ul> <p>David</p> <ul> <li><a href="https://cdb.reacttraining.com/react-inline-functions-and-performance-bdff784f5578"><em>React, Inline Functions, and Performance</em> by Ryan Florence</a></li> <li><a href="https://www.amazon.com/Build-Better-Products-Successful-User-Centered/dp/1933820586"><em>Build Better Products </em>by Laura Klein</a></li> </ul>