11 Awesome Resources To Bring Your React App to The Next Level
Tags: react, javascript, webdev, redux
Published: 2020-03-04 13:58:52

If you have already worked with ReactJS before, you know that there are a lot of tools and resources making our life easier as front-end developers. However, not everyone is working with the same tools or know all the great resources out there that can boost a ReactJS project.

Hence, I've decided to create this post in order to share with you my top tools and resources that I use every time I'm working on ReactJS projects.

🔖Bookmark this post and share it with your developer friends! I hope you will enjoy it.

In case you want to learn more about ReactJS and improve your Javascript skills, have a look at my ReactJS online course [here](https://www.alterclass.io/). No prior experience in ReactJS needed. You will learn how to build a real-world application step-by-step using modern ReactJS.

[![promo.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1582983872755/ux-qJiB3L.png)
](http://alterclass.io/) 

# Table of Contents

1. [create-react-app](#create-react-app)
2. [React Developer Tools](#react-developer-tools)
3. [styled-components](#styled-components)
4. [Storybook](#storybook)
5. [CodeSandbox](#codesandbox)
6. [The Most Definite React Hooks Cheat Sheet](#the-most-definite-react-hooks-cheat-sheet)
7. [React Router](#react-router)
8. [Redux](#redux)
9. [Jest](#jest)
10. [Enzyme](#enzyme)
11. [GraphQL](#graphql)

# create-react-app

This is my go-to command every time I'm starting a new ReactJS project. It's quick and easy. No build configuration needed. With only [one command line](https://github.com/facebook/create-react-app), you are up and running to start working on your web application.

```
npx create-react-app my-app
```

You don’t need to install or configure any tools like `webpack` or `Babel` as they are already preconfigured and hidden. All you have to do is focus on your code.

# React Developer Tools

This is one of the most known tools in this list when it comes to debugging a React application. [React DevTools](https://github.com/facebook/react/tree/master/packages/react-devtools) is a built-in extension for Chrome and Firefox browsers. It works for React and React Native.

If you haven't installed it yet, I highly recommend doing so. It will ease your life at developing React application.

# styled-components

If you want to style your React components with no stress, this is the library you must use. There are a lot of other ways and libraries to style your app, but [styled-components](https://styled-components.com/) is the one I recommend. Why? 

It integrates smoothly into your React components as it uses ES6 and CSS to style them with no hassle. Plus, it is a popular library with great documentation. Styling React components has never been so easy thanks to this awesome library.

# Storybook

Have you ever wanted to build your React components without being disturbed by your application logic and the surrounding components and stuff?

If yes, [Storybook](https://storybook.js.org/) is the solution you need. It is a user interface development environment and playground for UI components. Thanks to this tool you can create components independently and showcase components interactively in an isolated development environment. It works outside your main React application so that you do not have to worry about app-specific dependencies and requirements.

Plus, it comes with a bunch of [addons](https://storybook.js.org/addons/) to enable advanced functionality and bring your development experience to a whole new level.

# CodeSandbox

[CodeSandbox](https://codesandbox.io/) is an online code editor that lets you prototype and build web applications from the comfort of your browser. 

It comes with a bunch of templates to use in order to easily and quickly set up a modern web application with React, Angular, Vue, Node, and much more.

Furthermore, there are a lot of public CodeSandbox projects and examples shared by the community. Have a look at it as there is a ton of great stuff [out there](https://codesandbox.io/explore).

# The Most Definite React Hooks Cheat Sheet

This one is from me. I've written a visual cheatsheet for you to master React Hooks. Actually, it is more than just a basic single-page cheat sheet. Indeed, I've included some real-world examples for each individual React hooks so that you can really understand how and where to use them. Have a look at it [here](https://alterclass.hashnode.dev/the-most-definite-react-hooks-cheat-sheet-for-2020-ck5s1viei075xqks1z816eo1l) and let me know what you think.

Myself, I'm using the cheat sheet on a daily basis when I need to refresh my memory on how to use a specific React hook. I highly suggest you [download the PDF version](http://eepurl.com/gQNSZD) so that you can have it wherever and whenever you need it.

# React Router

In single-page applications (SPA), we are using the same HTML page to render differently based on the navigation. React does not come with a built-in router, but we can easily achieve routing with the [react-router](https://github.com/ReactTraining/react-router) library.

React Router conditionally renders certain components to display depending on the route being used in the URL. So, if you want to easily navigate around a React app, forget about the traditional anchor tags and add React Router to your project.

This is a must-have library for any of your React single-page applications. 

[![promo.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1582983872755/ux-qJiB3L.png)
](http://alterclass.io/) 

# Redux

In a ReactJS application, there is a bunch of methods to handle state. However, when you are working on a large application with a complex state logic, I highly suggest you use the [Redux](https://react-redux.js.org/) library for React. 

Redux is a state container and is designed to work well with React's component model. You just need to define how to extract the values your component needs from Redux, and your component receives them as props.

It is making it easy to centralize your application's state and logic.

# Jest

[Jest](https://jestjs.io/docs/en/tutorial-react) is a testing framework that works pretty well with React. Indeed, it is included when creating a React app with the `create-react-app` command. 

Jest works out of the box and does not need any configuration. It has a feature-rich API that makes testing a piece of cake. It is commonly used as a test runner and also to make assertions in test cases.

# Enzyme

[Enzyme](https://enzymejs.github.io/enzyme/) can be used within Jest to render components, to access the DOM, and to make assertions based on the DOM. Enzyme works perfectly with Jest. It can cover unit and integration tests, whereas Jest is mainly used for snapshot tests.

Along with Jest, it makes it effortless to test React components. It is a testing library by Airbnb which you should highly consider adding to your next React projects. 

# GraphQL

In all front-end applications, you need to get data from external resources through API calls. [GraphQL](https://graphql.org/) does just that. This is a query language to make requests to APIs a breeze. It replaces REST as an API design paradigm and is becoming the new standard for exposing the data and functionality of a server.

By writing GraphQL queries, you are only requesting the data you need from your API. It makes your code much easier to maintain and can speed up your application development.

Furthermore, an interesting feature from GraphQL which is worth mentioning is the ability to fetch data from multiple resources in a single request.

So, if you are still using REST for fetching data from your API, you should have a look at GraphQL.

# Conclusion

If you liked this post, do not forget to bookmark it and share it with your friends. If you have any questions, feel free to comment below.

[![promo.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1582983872755/ux-qJiB3L.png)
](http://alterclass.io/)