
// ./src/context/PersonContext.js
const PersonContext = React.createContext();
export default PersonContext;
// index.js
const persons = [
{id: 0, name: 'Mark', age: 39},
{id: 1, name: 'Hanna', age: 28}
];
ReactDom.render(
<React.StrictMode>
<PersonContext.Provider value={persons}> // 이제 하위 component에서 persons 사용 가능
<App />
</PersonContext.Provider>
</React.StrictMode>,
document.getElementById("root")
);
// ./components/Example1.jsx
export default function Example1(){
return(
<PersonContext.Consumer>
{(persons) => (
<ul>
{persons.map(person => (
<li>{person.name}</li>
))}
</ul>
)}
</PersonContext.Consumer>
);
}
// ./components/Example2.jsx
export default class Example2 extends React.Component{
static contextType = PersonContext;
render(){
const persons = this.context;
return(
<ul>
{persons.map(person => (
<li>{person.name}</li>
))}
</ul>
};
}
// ./components/Example3.jsx
export default function Example3(){
const persons = useContext(PersonContext);
return(
<ul>
{persons.map(person => (
<li>{person.name}</li>
))}
</ul>
);
}
👉🏻 이거 가장 많이 사용!!!