230711(ํ)
๐ค ์ฑ์ฅ์ผ์ง 6.0
์ฑ
ํ๋ณตํ ์ด๊ธฐ์ฃผ์์(์จ์ธ ๋ค์ด์ด)
์ ๋ด์ฉ์ ์๊ทน๋ฐ์ ์์ํ๋ ์๋ฐํ ์ฑ์ฅ๊ธฐ๋ก
์ด์์๋ ๊ฝ๊ณผ ์ฃฝ์ ๊ฝ์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๊ฐ?
์ฑ์ฅํ๊ณ ์๋ ๊ฒ์ด ์ด์ ์๋ ๊ฒ์ด๋ค.
์๋ช ์ ์ ์ผํ ์ฆ๊ฑฐ๋ ์ฑ์ฅ์ด๋ค!
๐พ (4.0)ํ์ต ํค์๋์์ ์ต๋ํ ๊ฐ๋จํ ์ ๋ณด ์ ๊ณต, ๊ณ ๋ฏผ์์ ๋ด ๊ฒฝํ์ ์์ธํ ์ ์!
๐ฅ (5.0)ํ์ต ํค์๋๋ ํ์ค์ ํต์ฌ์ผ๋ก๋ง ์ ๋ฆฌ, ์ฑ๊ณต/์คํจ ์ผ์ง ์์ฑํ๊ธฐ! ์ด ๋, ์คํจ์ ๊ฒฝํ์ ์์ธํ ์ ๊ธฐ!
๐ (6.0)<์์ ๊ฐํธ!!!> ๋งค์ผ ์ต๊ด์ ์ผ๋ก ํต์ฌ๋ง ์ ์ ์ ์๊ฒ ํ๋ ์ ๋ณ๊ฒฝ. ์ฑ๊ณต๋ณด๋จ ์คํจ์ ์ด์ ์ ๋ง์ถ๊ธฐ.
- ๐ (6.1)<์์ > ๋งค๋ฒ ์ฑ๊ณต, ์คํจ๋ฅผ ๋ฐ๋ก ์ ๋ ๊ฒ๋ณด๋จ ๊ฒฝํ์ผ๋ก ํํํ์
๐ ์ค๋์ ๊ฐ์
๋ญ๊ฐ ๋ง์ด ํ ๊ฒ ๊ฐ์ผ๋ฉด์๋ ์ ๊ฒ ํ ๊ธฐ๋ถ..? ๋คํํ ์ค๋ ํ ์ผ์ ์ฒดํฌํ ๊ธฐ๋ก์ด ์์ด์ ์๊ฐํ ์ ์๋ ๊ฒ ๊ฐ๋ค.
๐ซง ์ค๋์ ๊ณ ๋ฏผ
๊ธฐ์กด confirm api ๋์ modal component๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ๋ ค ํ๋ค. ์ผ๋จ ๊ตฌํ์ ํ๋๋ฐ, state๋ฅผ handleํ๋ ๋ถ๋ถ์ ์ด๋ป๊ฒ ์ ๋ฌํด์ผํ ์ง ๊ณ ๋ฏผ์ด๋ค. handle ํจ์์
ํน์ townId๋ฅผ ์ ๋ฌํด์ ์ด๋ค ๋ก์ง์ ์ฒ๋ฆฌํด์ผํ๋๋ฐ, modal component๋ฅผ ReactDOM์ portal๋ก ๊ตฌํ์ ํด๋ฌ์ ์ ๋ฌํ ๋ฐฉ๋ฒ์ด ๋ ์ค๋ฅด์ง ์๋๋ค.
์ด..? ๊ทผ๋ฐ ์ง๊ธ ๊ธ์ ์ฐ๋ฉด์ ์ ์ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ๊ฒ๋ ๊ฐ๋ค. ์ด์ฐจํผ portal์ ์ด์ฉํด์ ๋ ๋๋ง ๋๋ ๊ฑด #modal-root
๋๊น townId๋ฅผ ์ ๋ฌํ ์ ์๋ ์์น์ portal์
์์น์ํค๋ฉด ๋ ๊ฒ ๊ฐ์๋ฐ..?!
โ๏ธ ์ค๋์ ๊ฒฝํ
ReactDOM.createPortal
์ฒ์์ ๊ตณ์ด ์ด๊ฑธ ์ ์ฌ์ฉํ๋๊ฑฐ์ง..? ์๊ฐ์ด ๋ค์๋ค. ํ๋ฐ portal์ ์ฌ์ฉํ๋ฉด modal๊ณผ ๊ฐ์ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ ์์น๋ฅผ ์ง์ ํ ์ ์๋ ์ฅ์ ์ด ์๋ค. ์ด๊ฒ ์ ์ฅ์ ์ด๋๋ฉด
์ค์ portal ์ปดํฌ๋ํธ๊ฐ ์์นํ ๊ณณ์์ props๋ ์ ๋ฌ๋ฐ์ผ๋ฉด์ ๋ ๋๋ง๋๋ ์์น๋ง ๋ค๋ฅธ ๊ณณ์์ ํ ์ ์๊ธฐ์ ๋ถ๋ชจ์ position์ด๋ z-index๋ฅผ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๋ค.
๋, modal์ด๋ dim ์ปดํฌ๋ํธ๊ฐ์ ๊ฒฝ์ฐ ์ด๋ค ํน์ page๋ component์์ ๋ ๋๋ง๋๊ธฐ๋ณด๋ค #root
์ ๋๋ฑํ ์์น(?)์์ ๋ ๋๋ง๋๋ ๊ฒ ์๋ฏธ์ ์ผ๋ก ๋ง๊ธฐ ๋๋ฌธ์ portal์
์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
Redux
์ฌ์ค ๋ฆฌ๋์ค ์์ฒด๋ฅผ ๋ฐฐ์ฐ๋ ค๊ณ ํ์ง ์์๋๋ฐ, ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ด์ด๊ธฐ๋ ํ๊ณ React๊ฐ ๋ฐํํ Flux ์ํคํ ์ฒ์ ๋ํ ๊ตฌํ์ฒด๋ผ๋ ์ ์์ ๊ณต๋ถํด๋ณด๋ ค๊ณ ํ๋ค. Redux์ ๊ฐ์ฅ ์ค์ํ 3์์น์ ๋ฐ๋์ ๊ธฐ์ตํ๊ณ ์์.
- ์ง์ค๋ ์ํ์ ์์ฒ์ ์ค์ง ํ๋์ฌ์ผํ๋ค.
- ์ํ๋ ์ค๋ก์ง ์ฝ๊ธฐ ์ ์ฉ์ด์ด์ผ ํ๋ค.
- ์ํ ๋ณํ๋ ์์ ํจ์๋ฅผ ํตํด ์ด๋ค์ ธ์ผ ํ๋ค.
๐พ ์ค๋์ ๊ตํ
๋ชฐ์
ํ์. ๋๋ ์ถฉ๋ถํ ๋ชฐ์
ํ ์ ์๋ค! ๋ชฐ์
์ด ์ ์๋ ๋๋ ์๊ฐํด๋ณด์. ์ค๋ ๋ด๊ฐ ์ฃฝ๋๋ค๋ฉด ๊ทธ๋ฅ ์นจ๋์ ๋์ ์์ ๊ฒ์ธ์ง ์กฐ๊ธ์ด๋ผ๋ ๋ญ๊ฐ๋ฅผ ํ๋ ค๊ณ ํ ๊ฒ์ธ์ง