DEV Community

Cover image for Libraries You Should Know When Building with React
Sonay Kara
Sonay Kara

Posted on • Edited on

Libraries You Should Know When Building with React

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 :)
Image description


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)

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
sonaykara profile image
Sonay Kara

hi Hossein. I will take your suggestion into consideration. I will update this article as soon as possible. Thank you very much.

Collapse
 
kasir-barati profile image
Mohammad Jawad (Kasir) Barati

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.

Collapse
 
pengeszikra profile image
Peter Vivo

jsdoc-duck ?

Collapse
 
sonaykara profile image
Sonay Kara

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.

Collapse
 
pengeszikra profile image
Peter Vivo • Edited

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.

Collapse
 
kasir-barati profile image
Mohammad Jawad (Kasir) Barati

What about nanostores? I think it is fairly good. So I was thinking what this lib has to offer?

Collapse
 
pengeszikra profile image
Peter Vivo • Edited

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.

Collapse
 
chandan_e69c011b258e09242 profile image
Chandan

Very Informative Share,
Thanks for sharing 🙌🏻

Collapse
 
sonaykara profile image
Sonay Kara

You’re welcome

Collapse
 
martygo profile image
Martins Gouveia

Nice list. But, would replace Jest with Vitest.

Vitest is more modern and have clean setup.

Collapse
 
sonaykara profile image
Sonay Kara

thank you for your suggestion. I agree with you, and I will include Vitest in the article .

Collapse
 
nyangweso profile image
Rodgers Nyangweso

great post. kudos

Collapse
 
prartha_li_cd87eb78a9c0a0 profile image
Prartha

The learning resources and support community for EchoAPI are fantastic! They’ve helped me solve issues quickly.

Collapse
 
sonaykara profile image
Sonay Kara

:)

Collapse
 
mikewarren2014 profile image
MikeWarren2014

MobX ?

Collapse
 
ciaire profile image
Yudho Alfantyo

zustand?

Collapse
 
sonaykara profile image
Sonay Kara

Since I mentioned Redux in the article, I didn’t include Zustand. Thank you for the feedback; I will add it to the article.