<๊ฐ์>
์์ง ์ด๋ค ๋ด์ฉ์ด ์ด๋ป๊ฒ ์์ฉํ๋์ง ์์ง๋ ๋ชปํ๋ ์ํ์์ ๊ธ ๊ณต๋ถํ๋ฏ ์ธ์ฐ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์๋ค๊ณ ๋ณธ๋ค.
๊ทธ๋์ ํ์ฌ๊น์ง ์ดํดํ ๋ด์ฉ๋ง ์ ๋ฆฌํ๊ณ ๋๋จธ์ง ๊ฐ๋ ๋ค์ ์ง์ ํด๋ณด๋ฉด์ ๊ฐ์ ์ก๊ณ ์ ๋ฆฌํ๋๋ก ํ๊ฒ ๋ค.
1. ๋ค๋น๊ฒ์ดํฐ, screen ๊ตฌ์กฐ๋
2. React ๋ด์ ์๋ช ์ฃผ๊ธฐ (๊ฐ๋ตํ๊ฒ)
์ด๊ฒ ์ด์ธ์ ๋ ๋ง์ ๊ณผ์ ๋ค์ด ์์ง๋ง, ์ผ๋จ ๊ฐ์์์ ๋ฐฐ์ด ์ฃผ์ ๋ด์ฉ๋ค๋ก๋ง ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ ๋ฆฌ ํ๊ฒ ๋ค.
์ด์ธ์ ๊ณผ์ ๋ค์ ๋ณด๊ณ ์ถ์ ์ฌ๋๋ค์ ๋ค๋ฅธ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ๊ธฐ ๋ฐ๋๋ค.
(1) Constructor
์ปดํฌ๋ํธ ์์ฑ์ ๋งค์๋, ์ปดํฌ๋ํธ๊ฐ ์์ฑ๋๋ฉด ๊ฐ์ฅ ๋จผ์ ์คํ๋๋ ๋งค์๋ ์ด๋ค.
(2) render
์ ํ ์ปดํฌ๋ํธ๋ค์ ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๊ฒ์ render๋ผ๊ณ ํ๋ค.
(3) componentDidMount
render๋ฅผ ๋๋ธ ํ (์ฆ ํ๋ฉด์ด ๊ทธ๋ ค์ง ํ)์ ์ฒ์์ด์ ๋ง์ง๋ง์ผ๋ก ์คํ๋๋ ๋งค์๋์ด๋ค.
ํด๋น ๋งค์๋ ๋ด์๋ ์ฑ์ด ๋ง ์์ํ์ ๋ ์ผ์ด๋์ผ ํ๋ ๋์๋ค์ ๊ธฐ์ ํด๋๋๋ค.
(4) componentWilUnmount
์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์์ ์ฌ๋ผ์ง๊ธฐ ์ ์ ์ฒ์์ด์ ๋ง์ง๋ง์ผ๋ก ์คํ๋๋ ๋งค์๋์ด๋ค.
๋์ ํ ๋น ํด๋จ๋ ๊ฒ๋ค ํ์ํ๊ฑฐ๋, Dom์ ๋ฑ๋กํด๋์ ์ด๋ฒคํธ๋ฅผ ์ ๊ฑฐํ๋ ๋ฑ์ ์์ ์ ๋งค์๋ ๋ด๋ถ์ ๊ตฌํํด๋๋๋ค.
3. Navigator ์ข ๋ฅ
(1) stack navigator
Stack ์๋ฃ ๊ตฌ์กฐ์ ์๋ฆฌ๋ก ํ๋ฉด ์ด๋์ ๊ตฌํํ Navigator.
A ํ๋ฉด์์ Bํ๋ฉด์ ์ด๋ฉด, Aํ๋ฉด ์์ Bํ๋ฉด์ด ์ฌ๋ ค์ ธ์ ์ด๋ฆฐ๋ค. (Stack ๊ตฌ์กฐ์ ๊ฐ๋ค.)
Stack์ด ์ ์ ํ์ถ, ์ฆ ๋งจ ๋ง์ง๋ง์ ์์ธ ๊ฒ์ด ๋จผ์ ๋๊ฐ๋ ๊ฒ์ฒ๋ผ. ํ๋ฉด ์์ ์ ์ผ ๋ง์ง๋ง์ ์์ธ ๊ฒ์ด ์ ์ผ ๋จผ์ ์ฌ๋ผ์ง๋ค.
(2) Drawer Navigator
์ฌ๋ผ์ด๋๋ฅผ ํตํด์ ์ด๋ํ Screen์ ๋ํ๋ด๋ Navigator ์ด๋ค.
(3) Tab Navigator
Tab ํํ๋ก ์ง๊ธ ๋ณด๊ณ ์ถ์ ํ๋ฉด์ ๊ณ ๋ฅด๋ Navigator์ด๋ค.
์ด๊ฒ๋ stack Navigator์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ค๋ฅธ ํ๋ฉด์ ๊ณจ๋๋ค๊ณ ํด์
๊ธฐ์กด ํ๋ฉด์ด unMount ๋๋ ๊ฒ์ด ์๋๋ค.
์ด๋ค ํญ์ด ๊ณจ๋ผ์ก๋์ง๋ tabPress๋ focus ๋ฑ์ ์ด๋ฒคํธ ๋ฐ์ ์ ๋์ํ๋ ์์ฑ์ ์ด์ฉํ์ฌ ๊ตฌํํ๋ค.
4. ๋ผ์ฐํ ์ด๋?
์ฌ์ฉ์๊ฐ ์์ฒญํ URl์ ๋ง๋ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ ๋ผ์ฐํ ์ด๋ผ๊ณ ํ๋ค.
<Routes> ์ปดํฌ๋ํธ๋ ์ฌ๋ฌ <Route> ์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ธ๋ ์์์ด๋ค. ์ฌ์ฉ์๊ฐ ์์ฒญํ URl๊ณผ ๋ง๋ ๋ผ์ฐํธ๋ฅผ ๋ด๋ถ์์ ๊ณจ๋ผ์ ๋จ ํ๋๋ง ๋๋๋งํด์ฃผ๋ ์ญํ ์ ํ๋ค.
<Route> ์ปดํฌ๋ํธ๋ <Routes>์ ์ํด ๊ณจ๋ผ์ง๋ฉด ๋๋๋ง๋์ด ํ๋ฉด์ ๋ณด์ฌ์ง๋ค.
<Route>์ ์์ฑ์ธ path์๋ ๋์ํ๋ URL์ด, element์๋ ๊ตฌํ๋ ์ปดํฌ๋ํธ๊ฐ ๋ค์ด๊ฐ๋ค.