React mainly focuses on what it does best (rendering UI components to build user interfaces) and leaves the gaps to be filled by the huge community of developers and companies.
This means the number of popular libraries and ways of doing things can definitely add up which has its pros and cons:
- You are not locked into one way of doing something, you have an array of great options to suit your needs the best.
- React has a HUGE ecosystem of people building and maintaining libraries, so odds are if you need to do something in particular there will (9 times out of 10) be an open-source npm package for it.
- This can be confusing for beginners. Since you have so many options, people sometimes just go for the most popular one even if it doesn’t necessarily meet their needs.
- The latest and greatest is constantly changing, it is important to choose libraries that are actively maintained and will move forward with industry standards when it does.
With that being said, here is a list of the React libraries I currently have bookmarked. These emojis next to each library show my personal experience with each library:
- ⭐ - my all-time favorites
- ✅ - have used in production and would advocate for
- 🕒 - have never used but am planning on using in the future
- :thinking: - have never used but would be interested in
- 👋 - have used in production but have since moved on from
Component UI Libraries
- Semantic UI React ✅ https://react.semantic-ui.com/
- Fluent UI ✅ https://developer.microsoft.com/en-us/fluentui#/
- Chakra UI 🕒 https://chakra-ui.com/
- Ant Design :thinking: https://ant.design/
- Material UI 👋 https://material-ui.com/
- React Bootstrap/reactstrap 👋 https://react-bootstrap.github.io/
- React Internal State / Context (not a library) ✅ https://reactjs.org/docs/context.html
- Redux 👋 https://redux.js.org/
- react-router ✅ https://reactrouter.com/
SSG (Static Site Generation) / SSR (Server-Side Rendering)
- react-testing-library ⭐ https://testing-library.com/docs/react-testing-library/intro
- Enzyme 👋 https://enzymejs.github.io/enzyme/
- framer/motion 🕒 https://www.framer.com/motion/
- react-spring :thinking: https://www.react-spring.io/
- react-motion :thinking: https://github.com/chenglou/react-motion
- react-transition-group :thinking: https://github.com/reactjs/react-transition-group
- react-query ✅ https://react-query.tanstack.com/
- react-table ✅ https://react-table-omega.vercel.app/
- react-intl ✅ https://github.com/formatjs/formatjs
These are some other libraries that I have bookmarked/starred but have not yet used in production.
- react-select https://react-select.com/home
Drag & Drop
- react-dnd https://react-dnd.github.io/react-dnd/about
- react-beautiful-dnd https://github.com/atlassian/react-beautiful-dnd
- react-helmet https://github.com/nfl/react-helmet
- react-icons https://github.com/react-icons/react-icons
- react-spinners https://github.com/davidhu2000/react-spinners
Social Media Share Buttons
- react-share https://github.com/nygardk/react-share
- react-responsive https://github.com/contra/react-responsive
With the vast ecosystem of libraries, I am sure that I left out some good ones. If I did, leave some of your favorite libraries in the comments and let me know what you think of the list!
Also if you like web development and meme content follow my Twitter 😄