ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
Life cycle (์๋ช ์ฃผ๊ธฐ)
๋ฆฌ์กํธ๋ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ์ View๋ฅผ ์ค์ฌ์ผ๋ก ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๊ทธ๋ฌ๋ค๋ณด๋ ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ์๋ ๋ผ์ดํ์ฌ์ดํด ์ฆ, ์ปดํฌ๋ํธ์ ์๋ช ์ฃผ๊ธฐ๊ฐ ์กด์ฌํ๋ค. ์ปดํฌ๋ํธ์ ์๋ช ์ ๋ณดํต ํ์ด์ง์์ ๋ ๋๋ง๋๊ธฐ ์ ์ธ ์ค๋น ๊ณผ์ ์์ ์์ํ์ฌ ํ์ด์ง์์ ์ฌ๋ผ์ง ๋ ๋์ด๋๋ค.
ํด๋์คํ
- Mounting : ์ปดํฌ๋ํธ์ ์ธ์คํด์ค ์์ฑ, DOM ์์ ์ฝ์
๋ ๋์ ์์๋๋ก ํธ์ถ
- Constructor : ๋ฆฌ์กํธ ์ปดํฌ๋ํธ์ ์์ฑ์๋ ์ปดํฌ๋ํธ๊ฐ ๋ง์ดํธ ๋๊ธฐ์ ์ ํธ์ถ๋๋ค.
- getDerivedStateFromProps: ์ต์ด ๋ง์ดํธ ์์ ๊ฐฑ์ ์ ๋ชจ๋์๊ฒ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ธฐ ์ง์ ์ ํธ์ถ๋ฉ๋๋ค.
- render : ํด๋์ค ์ปดํฌ๋ํธ์์ ๋ฐ๋์ ๊ตฌํ๋์ผํ ์ ์ผํ ๋ฉ์๋, ํธ์ถ๋๋ฉด props,state ๊ฐ์ ํ์ฉํ์ฌ null์ ๋ฐํ
- Updating : ์ปดํฌ๋ํธ๊ฐ re-rendering ๋ ๋, ์์๋๋ก ํธ์ถ ํ๋ ๋ฉ์๋
- shouldComponentupdate : ์ปดํฌ๋ํธ๊ฐ update๋๋ ์ฑ๋ฅ์ ์ต์ ํ ์ํค๊ณ ์ถ์๋ ์ฌ์ฉ ๋ถ๋ชจ,์์ ์ปดํฌ๋ํธ ๋ค render ์คํ
- getSnapshotBeforeUpdate : ๋ ๋๋ง ๊ฒฐ๊ณผ๊ฐ ์ค์ DOM์ ๋ฐ์๋๊ธฐ ์ ์ ํธ์ถ, ๋ค์์์ ๋ฉ์๋์ธ DidUpdate๋ ์ปดํฌ๋ํธ๊ฐ ์ ๋ฐ์ดํธ๋ ํ์ ํธ์ถ
- componentDidUpdate : ์ ๋ฐ์ดํธ๊ฐ ์ผ์ด๋ ์งํ์ ํธ์ถ, ์ต์ด ๋ ๋๋ง์๋ ํธ์ถ๋์ง ์๋๋ค.
- Unmounting : ์ปดํฌ๋ํธ๊ฐ DOM ์์์ ์ ๊ฑฐ๋ ๋์ ํธ์ถ๋๋ ๋ฉ์๋
- componentWillUnmount : ๋ง์ดํธ๊ฐ ํค์ ๋์ด ์ ๊ฑฐ๋๊ธฐ ์ง์ ์ ํธ์ถ, ์ด ๋ฉ์๋๋ ๋ค์ ๋ ๋ฉ์ด๋ง ๋์ง ์๋๋ค
ํจ์ํ
- useEffect : componentDidMount, componentDidUpdate ์ํ
- ์ปดํฌ๋ํธ ์์ state, props์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ณ , ๊ธฐ๋ณธ์ ์ผ๋ก ์ฒซ๋ฒ์งธ ๋ ๋๋ง๊ณผ ์ดํ ๋ชจ๋ ์ ๋ฐ์ดํธ์์ ์ํ๋๋ค ๋ํ, ๋๋ฒ์งธ ์ธ์๋ก ์กฐ๊ฑด์ ๊ฑธ๊ณ ์ฒซ ๋ฒ์งธ ๋ ๋๋ง์ด๋ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ ๋ ์ํํ๋๋ก ์ค์ ๊ฐ๋ฅ
- cleanup : ๋ชจ๋ effect๋ ์ ๋ฆฌ๋ฅผ ์ํ ํจ์๋ฅผ ๋ฐํํ ์ ์๋ค. ์ฆ ์ถ๊ฐ ์ ๊ฑฐ๊ฐ ํ๋์ effect๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ
- ์ฑ๋ฅ ์ต์ ํ : ๋ชจ๋ ๋ ๋๋ง ์ดํ ์ฑ๋ฅ ์ ํ๋ฅผ ๋ฐ์์ํค๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ค. ์ด๋ effect๋ฅผ ๊ฑด๋ ๋ฐ๋๋ก ํ ์ ์๋ค. ๋ ๋ฒ์งธ ์ธ์๋ฅผ ๋ฐฐ์ด๋ก ๋๊ธฐ๋ฉด ๋๋ค.
๋ฆฌ์กํธ ํ (hooks)
- useState : ์ปดํฌ๋ํธ์ ์ํ๋ฅผ ๊ด๋ฆฌ ํ ์์๋ค
- useEffect : ๋ ๋๋ง ์ดํ์ ์คํํ ์ฝ๋๋ฅผ ๋ง๋ค์ ์๋ค.
- useContext : ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ์์ ์ปดํฌ๋ํธ ๊ฐ์ ๋ณ์์ ํจ์๋ฅผ ์ ์ญ์ ์ผ๋ก ์ ์ ํ ์์๋ค.
- useReducer : state ์ ๋ฐ์ดํธ ๋ก์ง์ reducer ํจ์์ ๋ฐ๋ก ๋ถ๋ฆฌ ํ ์ ์๋ค.
- useRef : ์ปดํฌ๋ํธ๋ html ์์๋ฅผ ๋ํผ๋ฐ์ค(ref)๋ก ๊ด๋ฆฌํ ์ ์๋ค.
- urrent ์์ฑ์ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋๋ฐ, ์ด ์์ฑ์ ๋ค์ ๋๋๋ง์ด ๋์ง ์๋๋ค.
- ์ฌ์ฉํด์ผ ํ ๋ : ์ ๋๋ฉ์ด์ ์ ์ง์ ์ ์ผ๋ก ์คํ์ํฌ๋, ํฌ์ปค์ค, ํ ์คํธ ์ ํ์์ญ, ๋ฏธ๋์ด ์ฌ์์ ๊ด๋ฆฌ ํ ๋
- forwardRef : useRef๋ก ๋ง๋ ๋ํผ๋ฐ์ค๋ฅผ ์์ ์ปดํฌ๋ํธ๋ก ์ ๋ฌํ ์ ์๋ค.
- useImperativeHandle : useRef๋ก ๋ง๋ ๋ํผ๋ฐ์ค์ ์ํ์ ๋ฐ๋ผ, ์คํํ ํจ์๋ฅผ ์ ์ ํ ์ ์๋ค.
- useMemo, useCallback : ์์กด์ฑ ๋ฐฐ์ด์ ์ ํ ๊ฐ์ด ๋ณํ ๋๋ง ๊ฐ, ํจ์๋ฅผ ๋ค์ ์ ์ํ ์ ์๋ค.
- useLayoutEffect : ๋ชจ๋ DOM ๋ณ๊ฒฝ ํ, ๋ธ๋ผ์ฐ์ ๊ฐ ๋๋ํ๊ธฐ ์ ์ ์คํ ๋๋ ๊ธฐ๋ฅ์ ์ ํ ์ ์๋ค.
- useDebugValue : ์ฌ์ฉ์ ์ ์ Hook์ ๋๋ฒ๊น ์ ๋์์ค๋ค. *๋๋ฒ๊น : ์ฝ๋์์ ๋ฒ๊ทธ ์ ๊ฑฐ
728x90
'๐Frontend > ๐etc' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํญํด99]์ฒซ ํ์ ์ ์งํํ๋ฉฐ ๋๋ ์์ฌ์ด ์ , ๋ฟ๋ฏํ ์ (0) | 2022.08.21 |
---|---|
[ํญํด99]WIL (0) | 2022.08.14 |
[ํญํด99] WIL (0) | 2022.07.24 |
[ํญํด99]REACT ๊ณผ์ (0) | 2022.07.20 |
[ํญํด99]JWT์ API (0) | 2022.07.17 |
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- Python
- Git Code
- JavaScript
- styled-components
- ํญํด99
- Redux
- CS ์คํฐ๋
- CSS
- ์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ
- DESIGN
- ์๊ณ ๋ฆฌ์ฆ
- HTML
- ํฌ๋กค๋ง
- git
- flask
- ์๋ฒ
- db
- react
- ํธ๋ฌ๋ธ ์ํ
- scss
- ๋ฉ์ดํน ์ฑ๋ฆฐ์ง
- DB๋ชฝ๊ณ
- Til
- sass
- Router
- Wil
- API
- ์๋ฐ์คํฌ๋ฆฝํธ
- CS
- JWT
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
๊ธ ๋ณด๊ดํจ