์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์๋๋ฐ, ์์ฒญ ์์ธํด์ ๋๋๋ค!
์ญ์ ํด๋ด์ผ ์๋ ๊ฒ๋ค์ด ์์ฃผ ๋ง๋ค๋ ๊ฒ์ ๊นจ๋ซ๋ ์์ฆ์ด๋ค๐
๐ค ๊ทธ๋ฅ ๋ณ์ ๋ง๊ณ state๋ฅผ ์ฐ๋ ๊ฐ์ฅ ํฐ ์ด์
state๊ฐ ๋ณ๊ฒฝ ๋ ๋ ๊ด๋ จ๋ DOM์ ๋ค์ ๋ ๋๋ง ๋๊ฒ ํด์ผ ํ๋ค๋ฉด, state๋ฅผ ์จ์ผ ํ๋ค!
→ SPA๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ผ๋ฉด state๋ฅผ ์จ์ผํ๋ค
์๋ํ๋ฉด ๋ฆฌ์กํธ๋ state์ ์์ ์ด ์ผ์ด๋๋ฉด state๊ฐ ํฌํจ๋ DOM์ ์ฌ๋ ๋๋ง ํด์ฃผ๊ธฐ ๋๋ฌธ์ธ๋ฐ....
๊ทธ๊ฑธ ์๊ธฐ ์ํด์๋ ๋ฆฌ์กํธ์ Life cycle์ ์์์ผ ํ๋ค๐คฏ #๊ฐ๋ณด์๊ณ
๐ค setState๋ง๊ณ state๋ฅผ ์ง์ ๋ณ๊ฒฝํด์ฃผ๋ฉด ์ ํ๋ฉด ๊ฐฑ์ ์ด ์๋ ๊น?
๋ฆฌ์กํธ์ ์ปดํฌ๋ํธ๋ Mount
์ํ์์ ํ๋ฒ render()
๋ฅผ ์คํํ๊ณ ,
ํ์๋ Update
์ํ์ ์ง์
ํ์ฌ shouldComponentUpdate
=== true
์ผ๋๋ง render()
๋ฅผ ์คํํ๋ค.
๊ทธ๋์ ๋ณ๊ฒฝํ state๊ฐ ํ๋ฉด์ ๋ณด์ด๊ฒ ๋๋ ค๋ฉด Update์ํ์ ๋ค์ด๊ฐ์ผ ํ๋๋ฐ ๊ทธ๋ฌ๋ ค๋ฉด...
- state ๋๋ Props๊ฐ ๋ณ๊ฒฝ
- ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง
- forceUpdate ์ฌ์ฉ
ํด์ผํ๋ค.
state๊ฐ ๋ณ๊ฒฝ๋๋ฉด update๊ฐ ๋ผ์ผ ํ๋๊ฑฐ ์๋๊ฐ? ๋ผ๊ณ ์๊ฐํ ์ ์์ผ๋, ๋ฆฌ์กํธ๊ฐ ์ด ๊ฐ์ด ๋ณ๊ฒฝ ๋๋ค๋ ๊ฒ์ ํ๋จํ๋ ๊ธฐ์ค์ด ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ด๊ธฐ ๋๋ฌธ์, ๊ฐ์ฒด์ ์ฃผ์๊ฐ ๋ณ๊ฒฝ๋์ง ์๊ณ ๋ด๋ถ์ ๊ฐ๋ง ๋ฐ๋๋ฉด ๋ฐ๋๊ฒ์ผ๋ก ์ธ์์ ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ด์ ๊ด๋ จํด์ useState๊ฐ const
๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๊ฐ์ด ์ ๋ฆฌํ ์ ์๋๋ฐ,
const [count, setCount] = useState(0);
count ๋ณ์๋ฅผ ๋ฐ๊ฟ์ฃผ๋ ๊ฑด๋ฐ ์ let์ด ์๋๊น? ๋ผ๊ณ ์๊ฐ ํ ์ ์๋ค.
์ปดํฌ๋ํธ๊ฐ ๋ค์ ๋ ๋๋ง๋๋ฉด ํจ์๊ฐ ๋ค์ ์คํ๋์ด ์ scope๋ฅผ ๋ง๋ค๊ณ , count๋ณ์๋ ์๋ก ๋ง๋ค๊ฒ ๋๊ณ , ์ด๋ ์ด์ ๋ณ์์ ์๊ด์ด ์๊ฒ ๋๋ค. ๊ทธ๋์ const๋ก ์ ์ธ๋ count ๋ณ์๋ ๋์ผํ scope์์ ๋ค์ ํ ๋นํ๋ ๊ฒ์ ๋ง์ ์ ์๋ค๊ณ ํ๋ค!
๐ ๊ทธ๋์ ๋ด๊ฐ ์๊ฐํ๊ธฐ์๋
DOM์ ์กฐ์ํด์ผํ๋ ๋ฐ์ดํฐ๊ฐ ์๋๋ผ๋ฉด ์ผ๋ฐ ๋ณ์๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ๊ด๋ฆฌํ๊ธฐ ํธํ๋ค๋ ํผ๋๋ฐฑ์ ๋ฐ์๋ค.
๋ฆฌ์กํธ์์๋ ์ผ๋ฐ ๋ณ์ ๋ง๊ณ state๋ฅผ ์ฐ๋ ๊ฒ์ด ์ข๋ค! ๋ผ๊ณ ์๊ณ ์์๋๋ฐ ์ด๋ DOM๊ณผ ๊ด๋ จ๋ ๋ถ๋ถ์์์๊ณ , ๊ทธ๊ฒ ์๋๋ผ๋ฉด ์ผ๋ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ์ ํ์ง๋ ์๋ค๋ ๊ฒ์ ์์ง ๋ง์!
๊ทธ๋ฆฌ๊ณ ๋ฆฌ์กํธ ํ ์... ํด๋ก์ ๋ฅผ ์์์ผ ํ๋ค.
๐ ์ฐธ๊ณ
[React] state ์ฌ์ฉ๋ฒ ๋ฐ ์ฌ์ฉํ๋ ์ด์
import React, { useState } from 'react'; // useState๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด import import './App.css' function App(){ let [๊ธ์ ๋ชฉ, ๊ธ์ ๋ชฉ๋ณ๊ฒฝ] = useState( ['๋จ์ ์ฝํธ ์ถ์ฒ', '๊ฐ๋จ ์ฐ๋ ๋ง์ง'] ); // state๋ฅผ..
tried.tistory.com
[React] setState & useState๋ฅผ ์ฌ์ฉํ๋ ์ด์ / TIL # 53
setState & useState ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ฅผ ์์๋ณด์
velog.io
https://developerntraveler.tistory.com/59
[ React HOOK ] useState๊ฐ let ๋์ const๋ฅผ ์ฌ์ฉํ๋ ์ด์
React์์ useState Hook์ ์ฌ์ฉํ ๋, ์๋์ ์ฝ๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๊ณต์ ๋ฌธ์์์ ์ฐพ์๋ณผ ์ ์๋ค. const [name, setName] = useState('abc'); useState๋ฅผ ์ฌ์ฉํ๋ฉด name ๊ฐ์ด ๋ค๋ฅธ ๊ฐ์ผ๋ก ์ฌํ ..
developerntraveler.tistory.com
https://dudghsx.tistory.com/18
hooks์์ useState๊ฐ const๋ก ์ ์ธ๋๋ ์ด์
์นด์นด์คํก ์คํ ์ฑํ ๋ฐฉ์ ๋ฐ๋ฅด๋ฉด ์์ฆ์ ๊ธฐ์ ๋ค์ ํด๋์คํ์ด ์๋ ํ ์ค๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ๋ค. ๋จ๋คํ๋๊ฑด ๋ค ํ ์ค ์์์ผ์ง.. ๊ทธ๋์ ๊ณต์ ๋ฌธ์๋ฅผ ํ๋์ฉ ์ฝ์ด๋ณด๊ธฐ ์์ํ๋ค. ko.reactjs.org/docs/hooks
dudghsx.tistory.com
https://hewonjeong.github.io/deep-dive-how-do-react-hooks-really-work-ko/
[๋ฒ์ญ] ์ฌ์ธต ๋ถ์: React Hook์ ์ค์ ๋ก ์ด๋ป๊ฒ ๋์ํ ๊น?
React Hook์ ๋ํด ์ดํดํ๋ ค๋ฉด JavsScript ํด๋ก์ ์ ๋ํด ์ ์์์ผํฉ๋๋ค. React์ ์์ ๋ณต์ ๋ณธ์ ๋ง๋ค์ด๋ณด๋ฉฐ ํด๋ก์ ์ hook์ ๋์ ๋ฐฉ์์ ์์๋ด ๋๋ค.
hewonjeong.github.io
'๐๊ณต๋ถ > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] Intersection Observer๋ก ๋ฌดํ์คํฌ๋กค ๋ง๋ค์ด๋ณธ ํ๊ธฐ (0) | 2021.08.08 |
---|
๋๊ธ