[ํญํด99 - 4์ฃผ์ฐจ] ์ฃผํน๊ธฐ ๊ธฐ์ด - React
โ ํญํด99 - 4์ฃผ์ฐจ ํ๊ณ ๋ก (์ฃผํน๊ธฐ ๊ธฐ์ด)
ํ๊ณ ๋ก ๋ณด์๊ธฐ ์ ์ ์ํด ๋ณต ๋จผ์ ๋ฐ์ผ์ธ์~~~๐คธโ๏ธ๐คธโ๏ธ๐คธโ๏ธ
2023๋ ์ํด๊ฐ ๋ฐ์๋ค~~~~~~๐โจ
์ฃผํน๊ธฐ ์๋ จ์ฃผ์ฐจ๋ ๋ฐ์๋ค~~~~๐
์ด๋ฒ์ ์งํํ ์ฃผํน๊ธฐ-๊ธฐ์ด ์ฃผ์ฐจ์ ๋ํ ํ๊ณ ๋ก์ ์์ฑํ๋ ค๊ณ ํ๋ค.
๋ฆฌ์กํธ๋ฅผ ์ด๋ฒ์ ์ฒ์ ๋ง๋ฌ๋๋ฐ
๊ธฐ์ด ์ฃผ์ฐจ๋ฅผ ์งํํ๋ฉด์ ๋ฆฌ์กํธ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ํด ์ ๋ง ๋ง์ด ์๊ฒ ๋์ด์
์์ฃผ์์ฃผ ๋ฟ๋ฏํ ํ ์ฃผ์๋ค.
์! ๋ฆฌ์กํธ ๊ธฐ์ด ์ฃผ์ฐจ ํ๊ณ ๋ก,
๊ฐ๋ณด์๊ณ ~!
์ด๋ฒ ์ฃผ ํค์๋!
๐ State, Props, ๋ฆฌ๋ ๋๋ง ๋ฐ์ ์กฐ๊ฑด
State
State
State๋ ์ปดํฌ๋ํธ ์์์ ๊ด๋ฆฌ๋๊ณ ๋ฐ์ดํฐ ๋๋ ์ ๋ณด๋ฅผ ๋ด์ javascript ๊ฐ์ฒด์ด๋ค.
(ํจ์ ๋ด์ ์ ์ธ๋ ๋ณ์์ฒ๋ผ)
- ๋ ๋๋ง๋ ๊ฐ์ ๋ํ๋ธ๋ค. (ํ๋ฉด์ ๋ณด์ด๋ ๊ฐ)
- ์ฌ์ฉ์ ๋๋ ๋คํธ์ํฌ ๋ณ๊ฒฝ์ ๋ฐ๋ผ state๋ฅผ ์์ ํ ์ ์๋ค.
- ๊ฐ์ฒด์ ์ํ๊ฐ ๋ฐ๋ ๋๋ง๋ค ๋ฆฌ์กํธ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ธ๋ผ์ฐ์ ์ ๋ฆฌ๋ ๋๋งํ๋ค. (setState()๋ฅผ ์ฌ์ฉํ๋ค.)
Props
Props (Properties)
Props๋ ๋ฐ์ดํฐ ๋๋ ์ ๋ณด๋ฅผ ๋ด์ javascript ๊ฐ์ฒด์ด๋ค. (ํจ์ ๋งค๊ฐ๋ณ์์ฒ๋ผ)
- ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ : ์์ ์ปดํฌ๋ํธ๊ฐ ํ์ ์ปดํฌ๋ํธ์ ๊ฐ์ ์ ๋ฌํ ๋ ์ฌ์ฉํ๋ค.
- ์์ ํ ์ ์๋ค. (์ ๋ฌ๋ฐ์ ํ์ ์ปดํฌ๋ํธ ์ ์ฅ์์๋ ์ฝ๊ธฐ ์ ์ฉ ๋ฐ์ดํฐ์ด๋ค.)
State ์ Props์ ์ฐจ์ด
props์ state ๋ ์ผ๋ฐ JavaScript ๊ฐ์ฒด์ ๋๋ค.
๋ ๊ฐ์ฒด ๋ชจ๋ ๋ ๋๋ง ๊ฒฐ๊ณผ๋ฌผ์ ์ํฅ์ ์ฃผ๋ ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์๋๋ฐ,
ํ ๊ฐ์ง ์ค์ํ ๋ฐฉ์์์ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
props๋ (ํจ์ ๋งค๊ฐ๋ณ์์ฒ๋ผ) ์ปดํฌ๋ํธ์ ์ ๋ฌ๋๋ ๋ฐ๋ฉด
state๋ (ํจ์ ๋ด์ ์ ์ธ๋ ๋ณ์์ฒ๋ผ) ์ปดํฌ๋ํธ ์์์ ๊ด๋ฆฌ๋ฉ๋๋ค.
-๋ฆฌ์กํธ ๊ณต์ ๋ฌธ์-
State ์ Props ๋น๊ต
State | Props | |
์ ์ค์ผ์ด์ค | ๋ทฐ์ ๋ ๋๋ง ๋์ด์ผ ํ๋ ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉํ๋ค |
๋ฐ์ดํฐ, ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์์ ์ปดํฌ๋ํธ์ ์ ๋ฌํ๋ ๋ฐ ์ฌ์ฉํ๋ค |
๊ฐ๋ณ์ฑ | ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ ํ๊ณ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์๋ค |
props๋ ๋ฐ๋ ์ ์๋ค. ํ ๋ฒ ์ค์ ๋๋ฉด props๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค |
์ ๋ฐ์ดํธ | ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก state๋ฅผ ์ ๋ฐ์ดํธํ๋ค | ์์ ์ปดํฌ๋ํธ๋ ํ์ ์ปดํฌ๋ํธ์ ๋ํ props๋ฅผ ์ค์ ํ๋ค |
๋ฆฌ์กํธ ๋ฆฌ๋ ๋๋ง ๋ฐ์ ์กฐ๊ฑด
state์ ๋ณ๊ฒฝ
setState ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ฉด
๋ฆฌ์กํธ๋ ๋ณ๊ฒฝ์ ๊ฐ์งํ๊ณ ๋ฆฌ๋ ๋๋ง ํ๋ค. (์์ ๋ณต์ฌ๋ฅผ ํตํ ๋น๊ต)
์๋ก์ด props์ ์ ๋ฌ
์ ๋ฌ๋ฐ์ props ๊ฐ์ด ์ ๋ฐ์ดํธ ๋๋ฉด ๋ฆฌ๋ ๋๋ง์ ํจ
๋ถ๋ชจ ์ปดํฌ๋ํธ์ ๋ ๋๋ง
๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง ๋๋ฉด ์์ ์ปดํฌ๋ํธ๋ ํจ๊ป ๋ฆฌ๋ ๋๋ง ๋จ
forceUpdate()์ ์คํ
๋ฆฌ๋ ๋๋ง์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ฌ์ฉํ ์ ์๋ ๋ฉ์๋ (๊ฐ์ ๋ฆฌ๋ ๋๋ง)
shouldComponentUpdate์์ true๊ฐ ๋ฐํ๋ ๋
๊ฐ๊ฐ์ ์ปดํฌ๋ํธ๋ shouldComponentUpdate ๋ผ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์๊ณ
state์ ๋ณ๊ฒฝ ๋๋ ์๋ก์ด props๋ฅผ ์ ๋ฌ ๋ฐ๋ ๊ฒฝ์ฐ ์คํ๋๋ค.
์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก return ๊ฐ์ true ๊ฐ ๋์ด ๋ ๋๋ง์ด ์์๋๊ณ ,
๋ฆฌ๋ ๋๋ง์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ return value = false๋ก ์ง์ ํด์ ๋ฆฌ๋ ๋๋ง์ ๋ง์ ์ ์๋ค
๋ฆฌ์กํธ์ ์์ฃผ์์ฃผ ๊ธฐ๋ณธ ๊ฐ๋ ๋ค์ ์ ๋ฆฌํด๋ณด์๋ค.
๋ฆฌ์กํธ ๋ฌธ๋ฒ์ด ์ต์ํ์ง ์์์
์ด๋ฒ ์ฃผ ์ด๊น์ง๋ ๋ง์ด ์ด๋ ค์ด ๋๋์ด์๋ค.
ํ์ง๋ง ๋ฐ๋ณตํ๊ณ , ๋ฌธ์๋ฅผ ์ฝ๊ณ , ๊ฐ๋ ์ ์ตํ๋ค๋ณด๋
์ด๋์๊ฐ ๋์ ๋ค์ด์ค๊ธฐ ์์ํ๋ค!
์ฐ์์ใ ใ ๋์ ๋ค์ด์จ๋ค! ํ๋ ์๊ฐ
๋ฐ๋ก ๋ฆฌ์กํธ-์๋ จ ์ฃผ์ฐจ๊ฐ ์์๋๊ณ react-redux ๋ฑ์ ๊ณต๋ถํ๋๋ผ
๋ค์ ์ด๋ ค์ด ๋๋์ด๋คใ ใ ใ ใ ใ ใ ใ
ํ์ง๋ง ์ด๊ฑด ์ญ์ ์ต์ํ์ง ์์์ ๋ฐ๋ ๋๋์ผ ๊ฒ์ด๋ค.
๋ฐ๋ณตํ๊ณ ๊ฐ๋ ๋ค์ ์ตํ๋ค๋ณด๋ฉด
๋ ๊ทธ๋์๋ฏ ์ด๋์๊ฐ ๋์ ์ต๊ณ ์ดํด๊ฐ ๋๋ ์๊ฐ์ด ์ค๊ฒ ์ง!
2023๋ ์ํด๊ฐ ๋ฐ์๋ค.
๋ ์จ๋ ์ข๊ณ
์๋ก์ด ์ฃผ์ฐจ๋ ์์๋์๊ณ
๋จธ๋ฆฌ๋ ์๋ฅด๊ณ ์๋ค ๐โ ๊ฐ์ดํ๋ค!
2023๋ ์์์ด ์ข๋ค.
์ง๊ธ๊น์ง ํ๋ ๊ฒ์ฒ๋ผ! (๊ฑฐ๊ธฐ์ ์กฐ๊ธ ๋ ๋ณดํ์!ใ ใ ใ ใ ใ )
์ด์ฌํ ์ธํ๊ณผ ์์ํ์ ๋ด๋ณด์!
2023๋ !
์, ๊ฐ๋ณด์๊ณ !
์ด ๊ธ์ ๋ณด์ ๋ถ๋ค ๋ชจ๋ ์ํด ๋ณต ๋ง์ด ๋ฐ์ผ์ธ์! ๐คธโ๏ธ๐คธโ๏ธ๐คธโ๏ธ
์ฐธ๊ณ
https://ko.reactjs.org/docs/faq-state.html
https://www.simplilearn.com/tutorials/reactjs-tutorial/reactjs-state
https://ko.reactjs.org/docs/components-and-props.html