context: 하위 컴포넌트들이 props 없이도 부모의 값을 사용
let stockContext = React.createContext(); //같은 변수값을 공유할 범위생성
<stockContext.Provider value={재고}>
<div className="row">
{
shoes.map((a, i) => {
return <Card shoes={shoes[i]} i={i} />
})
}
</div>
</stockContext.Provider>
function Card(props) {
let stock = useContext(stockContext);
//stockContext로 공유된 데이터를 사용하겠다
return (
<div className="col-md-4">
<img src={'https://codingapple1.github.io/shop/shoes' + (props.i + 1) + '.jpg'} width="100%" />
<h4>{props.shoes.title}</h4>
<p>{props.shoes.content}</p>
<p>{props.shoes.price}</p>
</div>
)
}
다른 js파일에서도 공유하고 싶다면
1. 우선 <stockContext.Provider>태그로 detail 컴포넌트를 감싸주고
<stockContext.Provider value={재고}>
<Detail shoes={shoes} 재고={재고} 재고변경={set재고}/>
</stockContext.Provider>
import {stockContext} from './App.js'
✨간단한 데이터를 전송하는데는 props가 가장 간단하지만, 컴포넌트 안에 컴포넌트가 여러개 중첩되면 context를 사용하는 것이 편리하다.