<Component์ด๋ฆ />
์ด๋ผ๋ ํ ์ค๋ก ๋ฃ์ด์ ๊ตฌ์ฑํ ์ ์๋ค.๐ Component ํน์ง
1. Component ์ด๋ฆ ์ง์ ๋๋ ์์ด ๋๋ฌธ์๋ก ์์.
- return () ์์ ํ๊ทธ๋ค์ด ํํํ๊ฒ ์ฌ๋ฌ๊ฐ ๋ค์ด๊ฐ ์ ์๋ค. ํํํ๊ฒ ์ฌ๋ฌ๊ฐ์ ํ๊ทธ๋ฅผ ์ฐ๊ณ ์ถ์ผ๋ฉด
๋ก ๋ฌถ์ด์ผ ํ๋ค.
์๋๋ฉด ์๋ฏธ์๋ div๋ฅผ ์ฐ๊ธฐ ์ซ์ผ๋ฉด<> </>
์ด๊ฑธ๋ก ๋ฌถ์ด๋ ๋๋ค.
// Modal Component function Modal(){ return ( <div className="modal"> <h2>์ ๋ชฉ</h2> <p>๋ ์ง</p> <p>์์ธ๋ด์ฉ</p> </div> ) } // Main Component(App.js) import Modal from './Component/Modal.js'; // importํด์ ๋ถ๋ฌ์ค๊ธฐ function App (){ return ( <div> HTML ์๋ฉ์๋ ๊ณณ ... <Modal></Modal> // Component๋ช ์ผ๋ก ๋ถ๋ฌ์ฌ ์ ์๋ค </div> ) }
๐ก ์ด๋ค HTML๋ค์ Component ๋ง๋๋๊ฒ ์ข์๊น?
๊ธฐ์ค์ ์์ง๋ง ๊ด์ต์ ์ผ๋ก ์ด๋ค ๋ถ๋ถ์ ์ฃผ๋ก Componentํ ํ๋๋ฉด
1) ์ฌ์ดํธ์ ๋ฐ๋ณตํด์ ์ถํํ๋ HTML ๋ฉ์ด๋ฆฌ๋ค์ Component๋ก ๋ง๋ค๋ฉด ์ข๋ค.
2) ๋ด์ฉ์ด ๋งค์ฐ ์์ฃผ ๋ณ๊ฒฝ๋ ๊ฒ ๊ฐ์ HTML ๋ถ๋ถ์ ์๋ผ์ Component๋ก ๋ง๋ค๋ฉด ์ข๋ค.
3) ๋ค๋ฅธ ํ์ด์ง๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด ๊ทธ ํ์ด์ง์ HTML ๋ด์ฉ์ ํ๋์ ์ปดํฌ๋ํธ๋ก ๋ง๋์๋๊ฒ ์ข๋ค. (๊ทธ๋ฅ ์ข์ ๋ฟ ํ์๋ ์๋)
4) ๋๋ ๋ค๋ฅธ ํ์๊ณผ ํ์
ํ ๋ ์นํ์ด์ง๋ฅผ ์ปดํฌ๋ํธ ๋จ์๋ก ๋๋ ์ ์์
์ ๋ถ๋ฐฐํ๊ธฐ๋ ํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์์ display : block
์ด๋ฐ ์คํ์ผ์ ์กฐ์ ํด์ ๋ณด์ฌ์ฃผ๊ณ ์๋ณด์ฌ์ฃผ๊ณ ํ์๋๋ฐ
๋ฆฌ์กํธ์์ ๋ชจ๋ฌ์ฐฝ์ด ํ์ฌ ๋ณด์ด๋์ง ์๋ณด์ด๋์ง state๋ฅผ ์ ์ฅํด๋ ๋ค์ if๋ฌธ์ ์ฌ์ฉํด์ state์ ๋ฐ๋ผ ๋ชจ๋ฌ์ฐฝ์ ๋ณด์ฌ์ค๋ค.
React์์ if๋ฌธ์ ์ฌ์ฉํ ๋๋ ์ผํญ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. (๋ฆฌ์กํธ return๋ฌธ ๋ด์์ if๋ฌธ์ ์ฌ์ฉํ ์ ์์ด์ if๋ฌธ ๋์ฉ ์ญํ ์ ํ ์ ์๋ ์ผํญ์ฐ์ฐ์๋ฅผ ์ฌ์ฉ)
1) ๊ธฐ๋ณธ state๊ฐ์
true(ํน์ false)
๋ก ์ง์ ํ๊ธฐ
2) ์ผํญ์ฐ์ฐ์๋ฅผ ํตํด true(?)์ด๋ฉดfalse(ํน์ true)
, false(:)์ด๋ฉด null์ ์กฐ๊ฑด์ผ๋ก ๊ฑธ๊ธฐ
function App (){ let [modal, setModal] = useState(false); // ๊ธฐ๋ณธ๊ฐ์ผ๋ก false๋ฅผ ์ค๋ค return ( <div> HTML ์๋ฉ์๋ ๊ณณ { modal === true // modal์ ๊ธฐ๋ณธstate๊ฐ์ false์ด๋ฏ๋ก, ์ด ์ํ๋ modal์ด ์๋ณด์ ? <Modal /> // modal์ด true๊ฐ ๋๋ฉด <Modal />์ด ๋ณด์ : null // modal์ด false๋ฉด ์๋ฌด๊ฒ๋ ์๋ณด์ } </div> <button onClick={ ()=>{ setModal(!modal) } }> ์ด๊ธฐ </button> // button ๋๋ฅด๋ฉด state๊ฐ(=false)์ด true๋ก ๋ฐ๋(false์ ๋ฐ๋๋๊น) // ์ด๋ ๊ฒ ํ๋ฉด toggle๊ธฐ๋ฅ์ด ๊ตฌํ๋จ. ๋๋ฅด๋ฉด true, ๋๋๋ฅด๋ฉด false ) } // Modal Component function Modal(){ return ( <div className="modal"> <h2>์ ๋ชฉ</h2> <p>๋ ์ง</p> <p>์์ธ๋ด์ฉ</p> </div> ) }
1) ์ผ๋จ UI๊ฐ ๋ณด์ด๋/๋ณด์ด์ง์๋ ์ํ์ ๋ณด๋ฅผ state๋ก ๋ง๋ค์ด๋ (๋ณดํต true/false ์๋ฃํ์ผ๋ก)
2) state๊ฐ true์ผ ๋๋ง UI๋ฅผ ๋ณด์ฌ์ค๋ค๊ณ if๋ฌธ์ ์ฌ์ฉํจ
3) <์ด๊ธฐ๋ฒํผ>
์ ๋๋ฅด๋ฉด state๊ฐ true๋ก ๋ฐ๋๋๋ก ๋ฒํผ์ ๊ธฐ๋ฅ๊ฐ๋ฐํจ