React is both the most popular and most loved front-end framework on the planet. Before spending the time to learn it, it's important to understand how it'll help you build better UI.
React takes a declarative approach to creating and updating your UI. Unfortunately, that probably doesn't mean much to you if you don't know what 'declarative' means. You'll learn the difference between imperative and declarative code and how that can help you write better UIs.
React is all about composition. You'll learn what that means and how it differs from the traditional way of writing software with inheritance.
React won't do you much good if you can't add it to your app. You'll learn all about NPM (the company and the package manager) to more effectively manage your external packages.
At its core, webpack is a module bundler. You'll learn what that means, how it can help you, and anything else you'd ever want to know about Webpack and how to use it.
You can't build a React app without components, and you can't build components without elements. You'll learn the difference between the two and what JSX does behind the scenes.
JSX allows you to describe what you want your UI to look like based on the state of your component. You'll learn how to use it and some other tips every React developer should know.
Props are to components what arguments are to functions. You'll learn all about props and how to use them to pass information into components.
At the end of the day, we're all just glorified list developers. You'll learn how to performantly render lists of data using React.
This is where React shines. You'll learn all about adding and managing state using React components.
One key to writing predictable software is to keep your functions pure. You'll learn why that is and how React adopts and leverages that principle.
What if you pass a string to a component that expects an object? You'll learn about PropTypes which helps you avoid that issue.
You'll look at how you can hook into different moments in a component's lifecycle in order to accomplish specific tasks like data fetching or setting up subscriptions.
If your app doesn't fetch external data, it's just a static website. We'll look at the key to creating dynamic, data-driven websites - making API requests in React.
The React Icons library is the most popular way to add icons to a React app. You'll learn the API and what options are available to you.
Getting user input is a critical part of any application. You'll learn patterns you can leverage to do it at any scale.
With React, components manage their own state. Historically though, state has lived in the DOM. You'll learn the difference between controlled and uncontrolled components which gets to the heart of this issue.
React gives you the ability to compose UI via its children prop. You'll learn why it's useful and how to use it.
React allows you to pass data to components via props. Sometimes, you want to set default values for specific props if they're not passed into the component. You'll learn how to do that using defaultProps.
React lets you reuse visual logic via the component API. However, sometimes you want to reuse stateful, non-visual logic. You'll learn the most common pattern for accomplishing this - higher-order components.
Higher-order components allow you to reuse stateful logic but the API is a little weird. You'll learn another pattern for accomplishing this same thing - render props.
Often you need to pass data deep through your component tree. One way to avoid passing data down through every component is React Context. You'll learn the API as well as when you should and shouldn't use it.
Any non-trivial application will need a router. You'll learn the theory and API behind the most popular Router in the React ecosystem, React Router.
By default, React comes in development mode. You'll learn how to change to it to production mode as well as other steps you need to take to prepare your React app for production.
What's the use of building an app if you don't deploy it live? In the last section of the course, you'll learn to take the app you built and deploy it so others can enjoy it from anywhere.