React v16.8: The One With Hooks
This blog site has been archived. Go to react.dev/blog to see the recent posts.
With React 16.8, React Hooks are available in a stable release!
What Are Hooks?
Hooks let you use state and other React features without writing a class. You can also build your own Hooks to share reusable stateful logic between components.
If you’ve never heard of Hooks before, you might find these resources interesting:
- Introducing Hooks explains why we’re adding Hooks to React.
- Hooks at a Glance is a fast-paced overview of the built-in Hooks.
- Building Your Own Hooks demonstrates code reuse with custom Hooks.
- Making Sense of React Hooks explores the new possibilities unlocked by Hooks.
- useHooks.com showcases community-maintained Hooks recipes and demos.
You don’t have to learn Hooks right now. Hooks have no breaking changes, and we have no plans to remove classes from React. The Hooks FAQ describes the gradual adoption strategy.
No Big Rewrites
We don’t recommend rewriting your existing applications to use Hooks overnight. Instead, try using Hooks in some of the new components, and let us know what you think. Code using Hooks will work side by side with existing code using classes.
Can I Use Hooks Today?
Yes! Starting with 16.8.0, React includes a stable implementation of React Hooks for:
- React DOM
- React DOM Server
- React Test Renderer
- React Shallow Renderer
Note that to enable Hooks, all React packages need to be 16.8.0 or higher. Hooks won’t work if you forget to update, for example, React DOM.
React Native will support Hooks in the 0.59 release.
Tooling Support
React Hooks are now supported by React DevTools. They are also supported in the latest Flow and TypeScript definitions for React. We strongly recommend enabling a new