These exercises will help you get better at creating using hooks in React and working with data in your components.
-
Using Visual Studio Code, open the folder
flexpath-using-hooks-and-working-with-data-exercises
wherever you saved it on your device. -
Then, navigate inside of the
my-react-app
folder in your VS Code terminal by using the change directory command:cd my-react-app
-
Then, run the command
npm install
to install all the npm dependencies for this app. -
We have provided you a pre-built Vite Frontend Development Server application for you to write your React code in. You will learn a little bit more about Vite when you get to your personal project. For now, you don't need to know a lot about it. It simply builds your React code into a frontend app for you and serves it to a port on your machine so you can access it with the url
localhost:5501
in your web browser. -
You can start the Vite development server by running:
npm run dev
inside of themy-react-app
folder. Anytime you save a change in your code, Vite will automatically catch it, rebuild your app, and live update it in your browser. In most cases, there is NO need for you to refresh your web browser to see the changes you made in the app. You can stop the app in the terminal by using the key comboctrl + c
(Control key and the 'c' key). This will stop the app. This app will run at http://localhost:5501. Start the app, and then paste that url in your web browser. The text "I'm an App!" should show on the screen. -
The exercises for this module are outlined in
EXERCISE-INSTRUCTIONS.txt
. It will ask you to create various components and use different features of React to manage the components state.There are also some questions that don't require code for an answer. In those cases, save your answers for these questions directly inside of the
EXERCISE-INSTRUCTIONS.txt
file. -
If you create a new component then import and render it in
App.jsx
, and it doesn't show up in your browser window, then you should refresh the app. If that doesn't work, right click the page and choose "Inspect" to open your browsers Dev Tools. Then look in the "Console" tab of the dev tools. If there's an issue with your React component or how you imported it, a message will show detailed information about it in the console. -
For any components you write, please create them inside of
src/components
and import them intoApp.jsx
when asked.For any React.Context answers you write, please create them inside of
src/context
and import them intoApp.jsx
when asked.For any Custom Hook answers you write, please create them inside of
src/hooks
and import them intoApp.jsx
when asked.For any Higher Order Component answers you write, please create them inside of
src/hoc
and import them intoApp.jsx
when asked.For any Page Component answers you write, please create them inside of
src/pages
and import them intoApp.jsx
when asked.
We have provided you with a video running-vite-app.mp4
showing you how to
run npm install
for this project, start the app, open the app in your
web browser, and then add a simple component to show the app updating in
the browser. The video showcases running the previous React exercise module,
but this module is run the same way.
VIDEO DISCLAIMER - You will need to clone the repo to your local device before you can watch the .mp4 file since GitHub does not support watching it from here.
The solutions for these exercises are in their own Github repo.
The link to the GitHub repo is inside of /solution/exercise-solutions/solution-repo.txt
.
Make sure to fork the solution repo, THEN clone it to your local device to run the code.
-
React Components:
- Building functional components.
- Using JSX to describe the UI structure.
-
React State Management:
- Managing state with
useState
. - Handling derived state.
- Using
useEffect
for side effects, such as fetching data. - Custom hooks to streamline code.
- Error boundaries for catching and displaying errors gracefully.
- Managing state with
-
Routing with React Router:
- Setting up routing using
react-router-dom
. - Declaring routes with
Route
and usingLink
for navigation. - Using URL parameters with
useParams
. - Handling 404 pages with custom components.
- Using
useNavigate
for programmatic navigation.
- Setting up routing using
-
Event Handling:
- Handling events such as form submissions and button clicks.
- Using React's synthetic event system for consistent event handling.
-
Fetching Data and Error Handling:
- Fetching data using async/await and promises.
- Handling loading states and errors effectively.
- Using a mock API to simulate real-world data fetching.
-
Performance Optimization:
- Using hooks like
useCallback
anduseMemo
for optimization. - Techniques to avoid unnecessary re-renders.
- Using hooks like
-
Custom Hooks:
- Creating and using custom hooks to simplify repetitive logic.
- Centralizing data-fetching logic.