Concept Flow - Default exports vs named exports
Create Module File
Choose Export Type
Default Export
Import Module
Use Exported Value
Shows how a module file exports values either as default or named, and how importing modules access them.
export default function greet() { return 'Hello!'; } export function bye() { return 'Goodbye!'; }
| Step | Action | Export Type | Exported Name | Import Syntax | Resulting Import Value |
|---|---|---|---|---|---|
| 1 | Define greet function | default | greet | import greet from './module'; | greet function available |
| 2 | Define bye function | named | bye | import { bye } from './module'; | bye function available |
| 3 | Import default as named | default | greet | import { greet } from './module'; | Error: greet not found |
| 4 | Import named as default | named | bye | import bye from './module'; | Error: default export missing |
| 5 | Import both correctly | default + named | greet + bye | import greet, { bye } from './module'; | Both functions available |
| Variable | Start | After Step 1 | After Step 2 | After Step 5 |
|---|---|---|---|---|
| greet | undefined | function greet() | function greet() | function greet() |
| bye | undefined | undefined | function bye() | function bye() |
Default exports: one per module, imported without braces.
Named exports: multiple per module, imported with braces.
Import syntax must match export type.
Mix default and named imports with: import defaultName, { named1 } from 'module';
Errors occur if syntax mismatches exports.