📖 Scenario: You are building a simple React app that shows a list of favorite fruits. To keep your code organized, you will create the basic project structure step-by-step.
🎯 Goal: Build a React app with a clear project structure: a main component, a data file, and a configuration file. You will import and use these parts together.
📋 What You'll Learn
Create a data file with a list of fruits
Create a config file with a title string
Create a main React component that imports and uses the data and config
Render the list of fruits with the title in the app
💡 Why This Matters
🌍 Real World
Organizing React projects into clear files helps teams work together and keeps code easy to maintain.
💼 Career
Understanding project structure and module imports is essential for React developers working on real applications.
Progress0 / 4 steps
1
Create the data file with fruits list
Create a file named fruits.js that exports a constant array called fruits with these exact values: 'Apple', 'Banana', 'Cherry'.
React
Hint
Use export const fruits = [...] to create and export the array.
2
Create the config file with app title
Create a file named config.js that exports a constant string called appTitle with the exact value 'My Fruit List'.
React
Hint
Use export const appTitle = 'My Fruit List'; to create and export the title string.
3
Create the main React component
Create a React functional component named FruitList in a file FruitList.jsx. Import fruits from ./fruits.js and appTitle from ./config.js. Inside the component, return a <main> element with a <h1> showing appTitle and an unordered list <ul> that maps over fruits to create <li> items for each fruit.
React
Hint
Use fruits.map() inside the JSX to create list items. Remember to add a key prop.
4
Render the FruitList component in the app
In the main app file App.jsx, import the FruitList component from ./FruitList.jsx. Create a functional component named App that returns the <FruitList /> component. Export App as the default export.
React
Hint
Import FruitList and return it inside the App component. Export App as default.
Practice
(1/5)
1. Which folder in a React project usually contains reusable UI pieces like buttons or headers?
easy
A. pages/
B. components/
C. styles/
D. public/
Solution
Step 1: Understand folder purposes
The components/ folder holds reusable UI parts like buttons or headers.
Step 2: Compare with other folders
public/ holds static files, styles/ holds CSS, and pages/ holds full page components.
Final Answer:
components/ -> Option B
Quick Check:
Reusable UI pieces = components/ [OK]
Hint: Reusable UI parts go in components/ folder [OK]
Common Mistakes:
Confusing public/ with components/
Putting styles in components/
Using pages/ for small UI parts
2. Which file is typically found inside the public/ folder in a React project?
easy
A. index.html
B. Button.jsx
C. App.js
D. styles.css
Solution
Step 1: Identify public folder role
The public/ folder holds static files served directly, like index.html.
Step 2: Match files to folders
App.js and Button.jsx are source code files, styles.css is usually in styles/.
Final Answer:
index.html -> Option A
Quick Check:
Static files like index.html = public/ [OK]
Hint: index.html is always in public/ folder [OK]
Common Mistakes:
Putting App.js in public/
Confusing styles.css location
Thinking Button.jsx is static file
3. Given this React project structure inside src/:
Where should you import Header to use it on the home page?
medium
A. import Header from '../components/Header';
B. import Header from './components/Header';
C. import Header from '../pages/Header';
D. import Header from './Header';
Solution
Step 1: Locate Home.jsx and Header.jsx relative paths
Home.jsx is inside pages/, Header.jsx is inside components/ at the same src level.
Step 2: Determine correct import path
From pages/Home.jsx, since pages/ and components/ are sibling folders under src/, go up one level with '..' to src/ then into components/: '../components/Header'.
Step 3: Check options carefully
import Header from './components/Header'; uses './components/Header' which assumes components inside pages/, which is incorrect. import Header from '../components/Header'; uses '../components/Header' which is correct.
Final Answer:
import Header from '../components/Header'; -> Option A
Quick Check:
Relative import from pages to components = ../components/Header [OK]
Hint: Use ../ to go up one folder from pages to src [OK]
Common Mistakes:
Using ./components from pages/
Importing from pages/ folder
Forgetting relative path syntax
4. You see this import in a React file: import styles from './styles.css'; But the styles folder is inside src/, at the same level as components/, and the file is inside src/components/. What is wrong?
medium
A. The import should be './styles/styles.css' instead
B. You cannot import CSS files in React
C. The import path should be '../styles/styles.css' to go up one folder
D. The styles folder should be inside components/
Solution
Step 1: Understand folder locations
The file is in src/components/, styles folder is in src/. To import styles.css inside styles/, you must go up one level from components/.
Step 2: Fix import path
Using './styles.css' looks for styles.css inside components/, which is wrong. The correct path is '../styles/styles.css'.
Step 3: Check options
The import path should be '../styles/styles.css' to go up one folder correctly identifies the need to go up one folder into the styles folder. You cannot import CSS files in React is false (CSS can be imported). The import should be './styles/styles.css' instead looks inside components/. The styles folder should be inside components/ suggests wrong folder placement.
Final Answer:
The import path should be '../styles/styles.css' to go up one folder -> Option C
Quick Check:
Go up one folder to access styles folder [OK]
Hint: Use ../ to go up from components to src for styles [OK]
Common Mistakes:
Using ./ without going up folder
Thinking CSS can't be imported
Wrong folder nesting assumptions
5. You want to organize a React project with these goals: - Keep reusable UI parts separate - Have full pages grouped - Store CSS files in one place - Serve static files like images and index.html
Which folder structure best fits these goals inside src/ and public/?
hard
A. src/ui/, src/screens/, src/css/, public/assets/
B. src/, public/components/, public/pages/, public/styles/
C. src/components/, src/pages/, public/styles/, public/
D. src/components/, src/pages/, src/styles/, public/
Solution
Step 1: Match goals to folder roles
Reusable UI parts go in components/, full pages in pages/, CSS in styles/, static files like images and index.html in public/.
Step 2: Evaluate options
src/components/, src/pages/, src/styles/, public/ matches exactly: src/components/, src/pages/, src/styles/, public/. src/ui/, src/screens/, src/css/, public/assets/ uses non-standard folder names and puts static files in public/assets/ only. src/components/, src/pages/, public/styles/, public/ puts styles in public/, which is not typical. src/, public/components/, public/pages/, public/styles/ puts components and pages in public/, which is incorrect.
Final Answer:
src/components/, src/pages/, src/styles/, public/ -> Option D
Quick Check:
Standard React folders = components, pages, styles, public [OK]
Hint: Use components, pages, styles in src and public for static files [OK]
Common Mistakes:
Putting CSS in public/
Using non-standard folder names
Mixing src and public roles
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.