In this article, I will talk about libraries that you can use in your React projects.
If you like my articles, you can buy me a coffee :)
1. Styled Components
It is a library that makes CSS writing component-based in React applications. Since it has a component-based structure, it allows you to style each component separately and in a modular way. It also offers features such as dynamic styling and switching between themes.
Installation
npm i styled-components
yarn add styled-components
2. Formik - Yup
Formik provides great convenience in matters such as form validation, form submit operations and formik state management. It simplifies the error management and validation process, especially when working with large and complex forms.
Installation
npm i formik
yarn add formik
3. TanStack Query
It automatically manages and updates data changes. It caches data and makes it reusable. It increases performance through caching and reduces unnecessary network requests. The application can automatically update data in the background. It provides up-to-date data in the user interface. It provides dynamic and up-to-date data to enhance user experience. Retrieves data via dynamic URLs or parameters. With targeted data retrieval, it ensures that only the necessary data is captured.It makes it easier to create test scenarios. It provides powerful features to check and simulate data state. It provides useful mechanisms to manage errors and display meaningful error messages to the user. It provides retry options in error cases.
Installation
npm i @tanstack/react-query
yarn add @tanstack/react-query
4. Immer
Immutable is a library that facilitates state updates. It allows you to make changes in state updates functionally and easily without mutation. When used with state management tools such as Redux, it allows you to make cleaner and more understandable updates to immutable state structures.
Installation
npm i immer
yarn add immer
5. React Spring
It is a library used to create animations and transitions in applications. It is especially widely used in projects that want to add animations and dynamic interactions.
Installation
npm i react-spring
yarn add @react-spring/web
6. React Virtualized
It allows working with large data sets without experiencing performance problems. It avoids unnecessary rendering operations by rendering only visible elements.
Installation
npm i react-virtualized
yarn add react-virtualized
7. React DnD
It is a powerful library for adding dynamic interactions such as drag-and-drop to the user interface. Even complex drag-and-drop operations can be easily implemented.
Installation
npm i react-dnd
yarn add react-drag-and-drop
8. Framer Motion
Framer Motion is a modern library that you can use to create animations. You can easily add and manage animations compatible with React. You can easily apply everything from simple motion effects to complex animations.
Installation
npm i framer-motion
yarn add framer-motion
9. Jest
Jest provides testing tools for JavaScript and React projects.
Installation
npm install--save-dev react-test-renderer
yarn add--dev react-test-renderer
10. Storybook
It is a tool that tests React components in an isolated environment. It makes the component development and testing process more efficient. You can use it to test different user interface states and visualize the functionality of components.
Installation
npm i @storybook/react
yarn add @storybook/react
11. React i18next
It is used to develop multilingual applications in React projects. It works integrated with i18next and facilitates language changing operations. Dynamic language changing operations can be easily done.
Installation
npm i react-i18next
yarn add i18next-react
12. Redux Toolkit
Redux Toolkit is a tool that makes global state management in React projects easier and more efficient. It helps you manage data flow within the application by simplifying the complex structures of Redux. It offers a clear structure for data management and data updates even in large and complex projects. It is also used with Redux DevTools, which offers advanced debugging and time-travel debugging features.
Installation
npm install @reduxjs/toolkit
yarn add @reduxjs/toolkit
13. Zustand
Zustand is a tool that makes global state management in React projects easier and more efficient. It offers a clear structure for data management and data updates even in large and complex projects.
Installation
npm i zustand
yarn add zustand
14. Axios
It manages the process of sending and receiving data to external resources (API, backend, etc.) in React applications. Its Promise-based ** structure can be easily used with both **async/await and then/catch structures. It also offers features such as request timeout, automatic conversion, and global configuration.
Installation
npm i axios
yarn add axios
15. Vitest
Vitest is a fast unit testing framework tailored for Vite-based applications. It’s similar to Jest but optimized for Vite, providing hot module replacement (HMR) and fast test runs. With its integration into Vite, it also supports TypeScript, JSX, and other modern JavaScript features out of the box. Vitest is ideal for testing components, utilities, and large applications in React, Vue, and other frameworks, offering features like mocking, snapshots, and coverage reporting.
Installation
npm install -D vitest
yarn add -D vitest
Conclusion
In this article, we examined important react libraries. You can increase the functionality of your applications by including your libraries in your react project.
Top comments (18)
hi Hossein. I will take your suggestion into consideration. I will update this article as soon as possible. Thank you very much.
Also adding some sort of link to a GH repo in which is utilizing the lib to showcase its real world implications would mean a lot more than a run of phrasing content IMO.
jsdoc-duck ?
I don't have complete information on this subject yet, but I will research it and add it to my article as soon as possible.
It is a really minimal state handling to react, can be used JS or TS project well. Just add state and actions type definition to useReducer include dispatch capable mapped actions set.
jsdoc-duck
I wrote a really minimalist lib: 65 LOC.
But after I created this module, I was turning to pure-web direction without any framework. But any one can use, the better way, just copy the index.js to right place to your code ( borrowing instead dependency )
It is work like a Readux, but don't need so much boiler plate, and much more lightweight. Just need to declare your state type and your actions type.
What about nanostores? I think it is fairly good. So I was thinking what this lib has to offer?
I think
nanostore
is give a independent state handling solution. Maybe good maybe bad, but I saw for this use need to learn a brand new concept. These library/framework oroginaly have own state handling technic, for example useState, useReducer in React. My opininon is keep dependency as low as possible. That why if I work with react, I am stay with useReducer. ( jsdoc-duck - just give a type and dispatch help to it. )If I coding pure html then I try to skipp outer dependency - expect Tailwind, which is fine replacement of CSS.
Very Informative Share,
Thanks for sharing 🙌🏻
You’re welcome
Nice list. But, would replace Jest with Vitest.
Vitest is more modern and have clean setup.
thank you for your suggestion. I agree with you, and I will include Vitest in the article .
great post. kudos
The learning resources and support community for EchoAPI are fantastic! They’ve helped me solve issues quickly.
:)
MobX ?
zustand?
Since I mentioned Redux in the article, I didn’t include Zustand. Thank you for the feedback; I will add it to the article.