1. props๋ก ๋ถ๋ชจ -> ์์ state ์ ์กํ๋ ๋ฒ
- ์์์ปดํฌ๋ํธ ์ฌ์ฉํ๋ ๊ณณ์ ๊ฐ์ <์์์ปดํฌ๋ํธ ์๋ช ={state์ด๋ฆ} />
- ์์์ปดํฌ๋ํธ ๋ง๋๋ function์ผ๋ก ๊ฐ์ props๋ผ๋ ํ๋ผ๋ฏธํฐ ๋ฑ๋ก ํ props.์๋ช ์ฌ์ฉ
์ฐธ๊ณ .
1) props๋ <Modal ์ด๋ฐ๊ฑฐ={์ด๋ฐ๊ฑฐ} ์ ๋ฐ๊ฑฐ={์ ๋ฐ๊ฑฐ}> ์ด๋ ๊ฒ 10๊ฐ 100๊ฐ 1000๊ฐ ๋ฌดํํ ์ ์ก์ด ๊ฐ๋ฅํ๋ค.
2) ๊ผญ state๋ง ์ ์กํ ์ ์๋๊ฑด ์๋๋ค.
<Modal ๊ธ์ ๋ชฉ={๋ณ์๋ช }> ์ผ๋ฐ ๋ณ์, ํจ์ ์ ์ก๋ ๊ฐ๋ฅํ๊ณ
<Modal ๊ธ์ ๋ชฉ="๊ฐ๋จ์ฐ๋๋ง์ง"> ์ผ๋ฐ ๋ฌธ์์ ์ก์ ์ค๊ดํธ ์์ด ์ด๋ ๊ฒ ํด๋ ๋๋ค.
3) ๋ถ๋ชจ -> ์์ ์ธ ๋ค๋ฅธ ๊ด๊ณ์์๋ state ์ ์ก์ด ๋ถ๊ฐ๋ฅํ๋ค!
ex. ๋ถ๋ชจ ์ปดํฌ๋ํธ์ state(๊ธ์ ๋ชฉ)๋ฅผ ์์ ์ปดํฌ๋ํธ <Modal>์ ์ ์ก
function App (){
let [๊ธ์ ๋ชฉ, ๊ธ์ ๋ชฉ๋ณ๊ฒฝ] = useState(['๋จ์์ฝํธ ์ถ์ฒ', '๊ฐ๋จ ์ฐ๋๋ง์ง', 'ํ์ด์ฌ๋
ํ']);
return (
<div>
<Modal ๊ธ์ ๋ชฉ={๊ธ์ ๋ชฉ}></Modal>
</div>
)
}
function Modal(props){
return (
<div className="modal">
<h4>{ props.๊ธ์ ๋ชฉ[0] }</h4>
<p>๋ ์ง</p>
<p>์์ธ๋ด์ฉ</p>
</div>
)
}
2. Context API
Context API๋ฅผ ์ฐ๋ฉด props ์ ์ก์์ด state ๊ณต์ ๊ฐ ๊ฐ๋ฅํ๋ค. ํ์ง๋ง ๋ค์ ๋จ์ ๋ค ๋๋ฌธ์ ๋ง์ด ์ฐ์ง ์๊ณ , redux ๊ฐ์ ์ธ๋ถ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ค.
- state ๋ณ๊ฒฝ์ ์ธ๋ฐ์๋ ์ปดํฌ๋ํธ๊น์ง ์ ๋ถ ์ฌ๋ ๋๋ง์ด ๋๊ณ
- useContext() ๋ฅผ ์ฐ๊ณ ์๋ ์ปดํฌ๋ํธ๋ ๋์ค์ ๋ค๋ฅธ ํ์ผ์์ ์ฌ์ฌ์ฉํ ๋ Context๋ฅผ import ํ๋๊ฒ ๊ท์ฐฎ์์ง ์ ์๋ค.
Context API ์ฌ์ฉ๋ฒ
(App.js)
export let Context1 = React.createContext();
function App(){
let [์ฌ๊ณ , ์ฌ๊ณ ๋ณ๊ฒฝ] = useState([10,11,12]);
return (
<Context1.Provider value={ {์ฌ๊ณ , shoes} }>
<Detail shoes={shoes}/>
</Context1.Provider>
)
}
(Detail.js)
import {useState, useEffect, useContext} from 'react';
import {Context1} from './../App.js';
function Detail(){
let {์ฌ๊ณ } = useContext(Context1)
return (
<div>{์ฌ๊ณ }</div>
)
}
'๐ปWEB FrontEnd > ํ๋ ์์ํฌ React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ด๋ฏธ์ง ์ฝ์ ํ๋ ๋ฐฉ๋ฒ (0) | 2022.07.07 |
---|---|
React์ Bootstrap ์ ์ฉ (0) | 2022.07.07 |
๋ฐ๋ณต๋๋ ์์ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ (map, for) (0) | 2022.07.04 |
React ์ปดํฌ๋ํธ (0) | 2022.07.04 |
์ ๊น ์ฌ์ฉํ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐฉ๋ฒ 2๊ฐ์ง (0) | 2022.07.03 |