Tutorials

Learn React, React Native, JavaScript and more with in-depth tutorials.

React

Create a Dropdown in React that Closes When the Body is Clicked

In this lesson we'll create a dropdown menu that is toggle via a button setting state. We'll then setup a ref to get access to the container div. Finally using event listeners on the document body we will check if the user clicked anywhere outside of our dropdown and then close the dropdown.
Emotion

Create a Hoverable Display Card with React and Emotion

In this lesson we'll explore how to get Emotion setup with create-react-app. Then dive into using @emotion/styled to create styled React components. Finally we'll show how to structure styled components to allow you to use :hover and transition to create animated hover effects.
React Native

Create a 3D Animated Airhorn Button in React Native

In this lesson we'll dive into using some clever offset techniques to make a button that appears to be 3D. We'll add in some animations to control those offsets so that when our button is pressed/released the button animates in and out while playing an airhorn sound.
React Native

Create an Animated 3D Effect Airhorn Button in React Native

In this lesson we'll dive into using some clever offset techniques to make a button that appears to be 3D. We'll add in some animations to control those offsets so that when our button is pressed/released the button animates in and out while playing an airhorn sound.
React

Create a useMousePosition Hook with useEffect and useState in React

In this lesson we'll explore how to combine useEffect with useState to create a reusable hook. It will add a window listener for mousemove and update state with each movement.
React

Create a componentDidMount useEffect hook in React

In this lesson we'll explore how to create useEffect call, and listen to the window for mouse movement. We'll learn about cleaning up our effects, and how to pass an empty array into the second argument of our effect to create a componentDidMount like effect. Finally we'll trigger a mount/unmount to show effects getting cleaned up correctly.
React

Immutable Data with Immer and React setState

In this lesson we'll show the traditional method of updating state with a spread operator and then transform it into using the Immer produce functionality. This will allow us to achieve immutability on our data with simple mutations. We'll then show how Immer can use currying to create updater functions that can be passed directly to setState.
React

Test Successful Async Form Submissions with React Router

In this lesson we'll explore how to test that an async form submission successfully happened using Jest. We'll also take advantage of react-testing-library to render our react components to a fake dom. We'll use MemoryRouter to mock what a browser would normally do in the event of a transition, and create a fake component route to confirm that the submission successfully redirected us to the url we wanted.
React Native

Custom Handling the Android Back Button with React Navigation

In this lesson we'll explore setting up a stack navigator in React Navigation. We'll create a custom component that uses withNavigation to allow us to listen to navigation transitions. Using the BackHandler from React Native we can ask the screen if custom needs are required when the hardware back button is pressed. Finally we'll prompt the user if they want to navigate.
React Native

Conditional JavaScript Callbacks with Reanimated in React Native

In this lesson we'll explore how to setup a draggable circle. Then we'll dive into using the call method to create JavaScript callbacks whenever certain conditions are met inside of Reanimated.