---
title: "A critique of, and discussion about, React hooks"
publication: "React Status"
issue: 186
published_at: "2020-04-29"
canonical_url: "https://react.statuscode.com/issues/186"
---

This week's React news, links, and libraries       

#186 — April 29, 2020 

[Read on the Web](https://react.statuscode.com/issues/186)   React Status Your weekly React news digest, every Wednesday  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1588103170/m1dvx2gdlf8wnk21pct4.png)](https://dillonshook.com/a-critique-of-react-hooks/)  

[A Critique of React Hooks](https://dillonshook.com/a-critique-of-react-hooks/) — Sometimes you have to lead with the controversial item of the week and the [Hacker News discussion](https://news.ycombinator.com/item?id=22995928) around this went off into a lot more depth. 

Dillon Shook   

[A Visual Guide to React Mental Models](https://obedparla.com/code/a-visual-guide-to-react-mental-models/) — Different people learn in different ways but good mental models are always valuable and can be helpful if you need to juggle all of the pieces involved in a framework like React. 

Obed Parlapiano   [![\](https://copm.s3.amazonaws.com/61448869.png)](https://www.telerik.com/blogs/how-to-decide-between-building-in-house-and-buying-a-ui-component-library?utm_medium=cpm&utm_source=reactstatus&utm_campaign=kendo-ui-react-blog-build-or-buy&utmcontent=primary) 

[Build In-House or Buy a UI Component Library: How to Decide](https://www.telerik.com/blogs/how-to-decide-between-building-in-house-and-buying-a-ui-component-library?utm_medium=cpm&utm_source=reactstatus&utm_campaign=kendo-ui-react-blog-build-or-buy&utmcontent=primary) — Whether your goal is to meet a web project's deadline or to work more efficiently, at some point or another, you'll face the choice between building UI internally or buying a ready-made library of UI components. What key factors should you consider? 

Progress KendoReact sponsor   

[When Does React Re-Render Components?](https://felixgerschau.com/react-rerender-components) — React keeps things fast by only re-rendering things that have changed.. most of the time! But _what_ triggers re-renders and how can you optimize them? 

Felix Gerschau   

[react-pdf-highlighter: React Components for PDF Annotation](https://github.com/agentcooper/react-pdf-highlighter) — Built on top of PDF.js which handles the rendering. [Here’s a live demo.](https://agentcooper.github.io/react-pdf-highlighter/) 

Artem Tyurin   

[Next.js 9.3.6 Released with Experimental React Refresh Support](https://github.com/zeit/next.js/releases/tag/v9.3.6) — Lots of minor tweaks and bug fixes, but the main reason to dig into this is if you’re an existing Next.js user and are curious about the [Fast Refresh support.](https://github.com/zeit/next.js/pull/12008) 

Vercel (formerly ZEIT)  

💻 Jobs  

[Find a Job Through Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-reactstatus&utm_term=tech&utm_content=grouped&utm_campaign=ad-77585) — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started. 

Vettery   

[React Developer at X-Team (Remote)](https://x-team.com/remote-react-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=react) — Join the most energizing community for developers. Work from anywhere with the world's leading brands. 

X-Team  

ℹ️ _Interested in running a job listing in React Status? There's [more info here.](https://booking.cooperpress.com/jobs)_ 

📘 Tutorials and Stories  

[Building Smaller React Projects with Parcel](https://daveceddia.com/parcel-react-project/) — A look at using Parcel, the no-config module bundler, for creating lighter-weight React projects that aren’t overkilling your `node_modules` folder. 

Dave Ceddia   

[Looking at `useEffect` Under the Hood](https://www.bussieck.com/useeffect-under-the-hood/) — A look ‘behind the scenes’ (well, into React’s source code really) at how `useEffect` is implemented. 

Jan Bussieck   

[Comparing Next.js and After.js for SSR React Apps](https://blog.logrocket.com/comparing-next-js-after-js/) — [After.js](https://github.com/jaredpalmer/after.js) defines itself as if _“Next.js and React Router had a baby…”_ 

John Au-Yeung   

[Using The `key` Attribute to Remount a Component](https://www.nikgraf.com/blog/using-reacts-key-attribute-to-remount-a-component) — The author admits this is a ‘tool for your toolbelt’ rather than something you should do all the time. 

Nik Graf   

[Porting a React Frontend to TypeScript](https://www.executeprogram.com/blog/porting-a-react-frontend-to-typescript) 

Gary Bernhardt   

[Getting Started with OpenTelemetry in Node.js](https://docs.lightstep.com/otel/getting-started-node?utm_campaign=react&utm_source=cooper&utm_medium=Email) 

Lightstep sponsor   

[What I Wish I Knew About React (Before I Got Started)](https://bitsofco.de/what-i-wish-i-knew-about-react/) 

Ire Aderinokun   

[How I Organize React Projects](https://blog.danawoodman.com/articles/organizing-react-projects) — Three weeks ago we saw [how Robin Wieruch structures his apps](https://www.robinwieruch.de/react-folder-structure), Dana has his own approach which is not dissimilar. 

Dana Woodman   

▶[Bringing TypeScript to `useReducer`](https://www.youtube.com/watch?v=9KzQ9xFSAEU) 

Harry Wolff  

🔧 Code and Tools  

[Chromatic 2.0: Code Review but for UIs in Storybook](https://blog.hichroma.com/chromatic-2-0-code-review-but-for-ui-ddcebf0272b4) — From the maintainers of [Storybook](https://storybook.js.org/) (the popular UI component development tool) comes [Chromatic](https://www.chromatic.com/), a service for helping teams review UIs together. It’s a commercial service but free to a certain point. 

Chroma Software   

[use-scroll-to-bottom: A Hook to Tell You When the Page Has Scrolled to the Bottom](https://github.com/tudorgergely/use-scroll-to-bottom) — Uses the IntersectionObserver API and returns a callback plus a Boolean to indicate if the bottom has been reached. 

Tudor Gergely   

[The Fastest Way to Get Great Bug Reports from Non-Technical Folk](https://bugherd.com/bug-tracker-developers-new?utm_source=react_status&utm_medium=referral&utm_campaign=react_status) — Simply click a page element to pin visual feedback with screenshots & metadata. BugHerd = fast and easy bug tracking. 

BugHerd sponsor   

[enroute: A React Router with a Small Footprint for Modern Browsers](https://github.com/tj/react-enroute) 

TJ Holowaychuk   

[MDX 1.6: Use JSX in Markdown Documents](https://github.com/mdx-js/mdx) — Curiously, 1.6 introduces [initial Vue support.](https://github.com/mdx-js/mdx/pull/1029) 

Compositor and Vercel   

[A Cute Visual Live Code Demo of Framer Motion](https://variable.app/p/0088wbsgZacahMVEORaY) — As well as being a neat demo (although practical applications of the technique will require some imagination) it’s also showing off _Variable_, a new code collaboration tool. 

Variable   

[React Native Socials: Embed Posts From Popular Social Networks in Your App](https://github.com/PierreCapo/react-native-socials) — A React Native library (still at version 0, so use caution) to display posts from social networks, such as Twitter and Instagram, in your mobile app. 

Pierre Caporossi         

A **[Cooperpress](https://cooperpress.com/)** publication. 

[Change your email address](https://react.statuscode.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://react.statuscode.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
