---
title: "2 years of hooks"
publication: "React Status"
issue: 217
published_at: "2020-12-02"
canonical_url: "https://react.statuscode.com/issues/217"
---

Plus the BBC's work with React, building React apps with F#, and a TensorFlow integration |        

#217 — December 2, 2020 

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

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/te7vncxcwrflsn9vmlik.jpg)](https://dev.to/ryansolid/the-react-hooks-announcement-in-retrospect-2-years-later-18lm)  

[The React Hooks Announcement In Retrospect: 2 Years Later](https://dev.to/ryansolid/the-react-hooks-announcement-in-retrospect-2-years-later-18lm) — We introduced [hooks](https://reactjs.org/docs/hooks-intro.html) in [issue 112](https://react.statuscode.com/issues/112) in late 2018 and barely an issue has gone by without mentioning them since! This post reflects on their pros, cons, and influence both on React and other frameworks (Vue 3 and Svelte in particular). 

Ryan Carniato   

[How the BBC Migrated 31 Million Readers to an Isomorphic React App and Improved Page Performance](https://t.co/WwARbBno74?amp=1) — Back in issue 213 we presented [Simorgh: The BBC Does React, Too?](https://github.com/bbc/simorgh) While not a direct follow-on, this is another deep dive into the broadcaster’s development landscape and their efficiency gains with React. 

Chris Hinds (BBC)   [![\](https://copm.s3.amazonaws.com/5c92b31a.png)](https://www.telerik.com/kendo-react-ui/resources/?utm_medium=cpm&utm_source=reactstatus&utm_campaign=kendo-ui-react-evaluation-resourceshub&utm_content=primary) 

[Hit the Ground Running with the New KendoReact Resources Hub](https://www.telerik.com/kendo-react-ui/resources/?utm_medium=cpm&utm_source=reactstatus&utm_campaign=kendo-ui-react-evaluation-resourceshub&utm_content=primary) — Blogs, tutorials, videos and more - the new React resources hub created by the KendoReact team puts together all the materials you need to master the art of React UI. [What do you want to learn today?](https://www.telerik.com/kendo-react-ui/resources/?utm_medium=cpm&utm_source=reactstatus&utm_campaign=kendo-ui-react-evaluation-resourceshub&utm_content=primary) 

Progress KendoReact sponsor   

[`useEffect` vs `useLayoutEffect`](https://kentcdodds.com/blog/useeffect-vs-uselayouteffect/) — According to Kent, 99% of the time you will want to use `useEffect`. But every once in a while `useLayoutEffect` is a better choice, such as to avoid that distracting flicker when DOM mutations take effect. 

Kent C. Dodds   

[React Aria: React Hooks for Accessible UI Primitives](https://react-spectrum.adobe.com/react-aria/index.html) — Adobe steps up with a [WAI-ARIA](https://www.w3.org/TR/wai-aria-practices-1.2/)-compliant library to ensure the best UI experience for _all_ users. 

Adobe  

💻 Jobs  

[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 and work on projects for Riot Games, FOX, Sony, Coinbase, and more. 

X-Team   

[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) — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers. 

Vettery  

📘 Tutorials and Stories  

▶[Building React Applications in F# with Zaid Ajaj](https://www.youtube.com/watch?v=a6Ct3CM_lj44) — Broaden your development horizons with the [F#](https://fsharp.org/) functional language and the [Fable](https://fable.io) JavaScript compiler, as presented at the recent [.NET Conf 2020](https://www.dotnetconf.net) with host [Layla Porter](https://twitter.com/laylacodesit). 

dotNET   

[The Perfect Dark Mode for Next.js](https://sreetamdas.com/blog/the-perfect-dark-mode) — Further to the dark mode theme we kicked off [last week](https://react.statuscode.com/issues/216) (but for Gatsby users), ‘perfect’ in this context means without the dreaded [flicker of light mode](https://sreetamdas.com/blog/the-perfect-dark-mode/perfect-dark-mode-mdxjs-flicker.gif) thrown into the mix to spoil the whole thing. 

Sreetam Das   

[Common React Interview Questions and Vetted, Eloquent Answers to Rehearse](https://dev.to/scrimba/react-interview-questions-to-expect-in-2021-with-answers-dfl) — If you’re looking to finally nail that interview, this could be worth revising. Though, of course, gaining insight rather than parroting learned answers is the real goal. 

Alex Booker   

[Stream Announced the Public v2.0 Availability of Their React Native SDK](https://getstream.io/blog/stream-react-native-v2-sdk-release/?utm=react_status&utm_medium=promototed_newsletter) 

Stream sponsor   

[Decouple Data From UI With React Hooks](https://t.co/Zjh3Ox7gEx?amp=1) — Learn how to write a functional component leveraging the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) to address _both_ the data retrieval latency _and_ the subsequent re-rendering of the component with the returned data. 

Suhan Wijaya   

[Comparing Styling Methods In Next.js](https://www.smashingmagazine.com/2020/09/comparison-styling-methods-next-js/) — Next.js offers a variety of options for styling on both the global and component level and this article looks at seven options and how to implement each of them. 

Adebiyi Adedotun Lukman   

[Animated Transitions with React Router v5](https://ui.dev/react-router-v5-animated-transitions/) 
Tyler McGinnis     

🛠 Code and Tools   

supported by [![Okta\](https://res.cloudinary.com/cpress/image/upload/v1602154330/de7dtktheistsfpqdem4.png)](https://developer.okta.com/?utm_campaign=newsletter_cooperpress_all_multiple_inc_dev_sponsored-section_null&utm_source=cooperpress&utm_medium=cpc)   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/omhbzjjakjzi73x2ybcr.jpg)](https://github.com/LouisBarranqueiro/reapop)  

[Reapop 3.0: Simple and Customizable Notifications](https://github.com/LouisBarranqueiro/reapop) — Everything you’re likely to need for notifications, as illustrated by one of the better interactive [demos](https://louisbarranqueiro.github.io/reapop/) we have seen in some time. 

Louis Barranqueiro   

[React Awesome Reveal: Reveal Animations Using the Intersection Observer API](https://github.com/dennismorello/react-awesome-reveal) — This is one of those libraries which can either be used as-is in your next project, or as a learning tool for better understanding the [Intersection Observer API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API). Check out the [demo](https://react-awesome-reveal.morello.dev/docs/). 

Dennis Morello   

[Wallaby.js: The Fastest JavaScript and TypeScript Test Runner (20% Discount)](http://wallabyjs.com/store/personal/?utm_source=cooperpress&utm_campaign=reactstatus&utm_content=react) — For a limited time, Wallaby.js is discounted by 20%. Don’t miss out on this opportunity to super-charge your react testing. 

Wallaby.js sponsor   

[React-Tensorflow: React Hooks for Google's Machine Learning Platform](https://github.com/joshuaellis/react-tensorflow) — If you’ve ever wanted to integrate the Google-developed [Tensorflow](https://www.tensorflow.org) machine learning platform into your React app, now you can. 

Josh Ellis   

[Several React Native Libraries for “Native Features”](https://t.co/HwngHTE8R5?amp=1) — Take full advantage of the hardware’s capabilities while seemlessly integrating with the UI using these eight libraries, each of which is described in just the right amount of detail to get you started. 

Shanika Wickramasinghe   

[Twin: Tailwind Combined With CSS-in-JS](https://github.com/ben-rogerson/twin.macro) — Good news: you no longer have to choose between the [Tailwind](https://tailwindcss.com) framework and [CSS-in-JS](https://medium.com/dailyjs/what-is-actually-css-in-js-f2f529a2757). 

Ben Rogerson   

[A Next.js API Middleware Approach](https://github.com/htunnicliff/next-api-middleware) — Rather than write functions inside your API route handler, how about the middleware approach? 

Hunter Tunnicliff         

This issue was curated by Terence C. Gannon and edited by the Cooperpress team. 

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
