📖 Scenario: You are building a simple React app that shows a greeting message. To keep your code organized, you want to create the greeting message as a separate component and then use it inside your main app component.
🎯 Goal: Build two React components: a Greeting component that shows a message, and an App component that imports and uses the Greeting component.
📋 What You'll Learn
Create a functional React component called Greeting that returns a <h1> with the text 'Hello, welcome to React!'
Export the Greeting component as a named export
Create a functional React component called App
Import the Greeting component inside App using a named import
Use the <Greeting /> component inside the App component's returned JSX
💡 Why This Matters
🌍 Real World
In real React projects, components are split into separate files and imported/exported to keep code clean and maintainable.
💼 Career
Understanding how to export and import components is essential for working on React apps in professional development teams.
Progress0 / 4 steps
1
Create the Greeting component
Create a functional React component called Greeting that returns an <h1> element with the text 'Hello, welcome to React!'.
React
Hint
Use export function Greeting() to create and export the component in one step.
2
Create the App component
Create a functional React component called App that returns an empty <div> element.
React
Hint
Use export function App() to create and export the App component.
3
Import the Greeting component inside App
Inside the same file, add a named import statement to import the Greeting component into the App component's scope.
React
Hint
Use import { Greeting } from './Greeting'; to import the named export Greeting.
Note: In a real project, Greeting would be in a separate file named Greeting.js. For this exercise, assume the import path is './Greeting'.
4
Use the Greeting component inside App
Inside the App component's returned JSX, add the <Greeting /> component so it shows the greeting message on the page.
React
Hint
Use <Greeting /> inside the return statement of App.
Practice
(1/5)
1. What is the main reason to export a React component from a file?
easy
A. To make the component run faster
B. To hide the component from other files
C. To use the component in other files by importing it
D. To automatically style the component
Solution
Step 1: Understand the purpose of export
Exporting a component allows it to be shared and used in other files.
Step 2: Connect export with import usage
Without export, other files cannot import and use the component.
Final Answer:
To use the component in other files by importing it -> Option C
Quick Check:
Export shares components [OK]
Hint: Export lets you share components between files [OK]
Common Mistakes:
Thinking export improves speed
Believing export hides components
Assuming export adds styles automatically
2. Which of the following is the correct syntax to export a React component as the default export?
easy
A. export MyComponent = () =>
Hello
;
B. export default function MyComponent() { return
Hello
; }
C. default export MyComponent() { return
Hello
; }
D. export function default MyComponent() { return
Hello
; }
Solution
Step 1: Recall default export syntax
The correct syntax is 'export default' followed by the function declaration.
Step 2: Check each option's syntax
export default function MyComponent() { return
Hello; } matches the correct syntax; others have invalid order or keywords.
Final Answer:
export default function MyComponent() { return <div>Hello</div>; } -> Option B
Quick Check:
Default export uses 'export default' [OK]
Hint: Default export starts with 'export default' [OK]
Common Mistakes:
Placing 'default' after function name
Using '=' with export incorrectly
Mixing 'export' and 'default' order
3. Given these two files, what will be the output when App is rendered?
// Button.js export function Button() { return <button>Click</button>; } // App.js import { Button } from './Button'; export default function App() { return <div><Button /></div>; }
medium
A. <div><button>Click</button></div>
B. Error: Button not found
C. <button>Click</button>
D. <div>Button</div>
Solution
Step 1: Understand named export and import
Button is exported as a named export and imported with curly braces correctly.
Step 2: Analyze rendering in App component
App renders a div containing the Button component, which returns a button element with text 'Click'.
Final Answer:
<div><button>Click</button></div> -> Option A
Quick Check:
Named export/import works = output includes button inside div [OK]
Hint: Named exports import with braces { } [OK]
Common Mistakes:
Importing named export without braces
Expecting Button text instead of button element
Confusing default and named exports
4. What is wrong with this import statement?
import Button from './Button';
Given that Button.js contains: export function Button() { return <button>Click</button>; }
medium
A. Button is a named export but imported as default
B. The file path is incorrect
C. Button component is not exported at all
D. The import statement is missing curly braces
Solution
Step 1: Check export type in Button.js
Button is exported as a named export using 'export function Button'.
Step 2: Compare with import syntax
Importing without braces means default import, but Button is not default exported.
Final Answer:
Button is a named export but imported as default -> Option A
Quick Check:
Named export must import with braces [OK]
Hint: Named exports need braces in import [OK]
Common Mistakes:
Importing named export without braces
Assuming default export without checking
Ignoring export type in source file
5. You have two components in Widgets.js:
export function WidgetA() { return <div>A</div>; } export function WidgetB() { return <div>B</div>; }
How should you import both components in Dashboard.js to use them?
hard
A. import WidgetA from './Widgets'; import WidgetB from './Widgets';
B. import WidgetA, WidgetB from './Widgets';
C. import * as Widgets from './Widgets';
D. import { WidgetA, WidgetB } from './Widgets';
Solution
Step 1: Identify export type in Widgets.js
Both WidgetA and WidgetB are named exports.
Step 2: Choose correct import syntax for multiple named exports
Use curly braces with both names inside: import { WidgetA, WidgetB } from './Widgets';
Final Answer:
import { WidgetA, WidgetB } from './Widgets'; -> Option D
Quick Check:
Multiple named exports import with braces and commas [OK]
Hint: Import multiple named exports with { A, B } [OK]
Common Mistakes:
Trying to import multiple named exports as default
Using separate default imports for each named export
Using import * without accessing properties
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.