22.07.28_TIL
π μ΄μ μ λ μ κ°μ’ APIλ₯Ό μ€μ΅μ μ§ννλ€. μ νλΈ, 곡곡λ°μ΄ν° ν¬νΈ, vworld λ±μ proxy μ€μ μμ΄ APIλ₯Ό λ°μμ¬ μ μμμ§λ§ λ€μ΄λ² κ²μ APIλ₯Ό κ°μ Έμ¬ κ²½μ° package.jsonμ proxy μ€μ μ ν΄μΌ CORS μ€λ₯κ° μ¬λΌμ§λ©° λ°μ΄ν°λ₯Ό λ°μμ¬ μ μμλ€. κ·Έλ¦¬κ³ μ€λμ Custom Hooksλ₯Ό νμ΅νλ λ μ΄λ€. λ°λ³΅λλ λ£γ±μ ν¨μλ‘ λ§λ€μ΄ μ¬μ¬μ©ν μ μλ€λΌκ³ μ νμλλ° μ΄λ€ κ²μΈμ§ μ νν νμ΅μ μ§νν΄λ³΄μ!!
π μ€λ νμ΅ν λ΄μ©
Custom Hooks
- κ°λ°μκ° μ€μ€λ‘ 컀μ€ν ν ν μ μλ―Ένλ©° μ΄λ₯Ό μ΄μ©ν΄ λ°λ³΅λλ λ‘μ§μ ν¨μλ‘ λ½μλ΄μ΄ μ¬μ¬μ©ν μ μλ€.
- μ¬λ¬ urlμ fetchν λ, μ¬λ¬ inputμ μν μν λ³κ²½ λ± λ°λ³΅λλ λ‘μ§μ λμΌν ν¨μμμ μλνκ² νκ³ μΆμ λ 컀μ€ν ν μ μ£Όλ‘ μ¬μ©ν©λλ€.
- μνκ΄λ¦¬ λ‘μ§μ μ¬νμ© κ°λ₯
- ν΄λμ€ μ»΄ν¬λνΈλ³΄λ€ μ μ μμ μ½λλ‘ λμΌν λ‘μ§ κ΅¬ν κ°λ₯
- ν¨μνμΌλ‘ μμ±νκΈ° λλ¬Έμ λ³΄λ€ λͺ λ£νλ€.
Custom Hook μ μ κ·μΉ
- Custom Hookμ μ μν λλ ν¨μ μ΄λ¦ μμ useλ₯Ό λΆμ΄λ κ²μ΄ κ·μΉμ΄λ€.
- λκ°μ κ²½μ° νλ‘μ νΈ λ΄μ hooks λλ ν 리μ Custom Hookμ μμΉ μν¨λ€.
- Custom HookμΌλ‘ λ§λ€ λ ν¨μλ μ‘°κ±΄λΆ ν¨μκ° μλμ΄μΌ νλ€. return νλ κ°μ 쑰건λΆμ¬μλ μλλ€.
μ½λ λΆν (Code Spliting)
- μ½λλ₯Ό ν΄μνκ³ μ€ννλ μ λκ° λλ €μ‘λμ§ νμ ν΄μ λ²λ€μ λλ λ€μ μ§κΈ νμν μ½λλ§ λΆλ¬μ€κ³ λμ€μ νμν μ½λλ λμ€μ λΆλ¬μ¬ μ μλλ‘νλ κ°λ μ΄λ€.
- λ²λ€μ΄ κ±°λν΄μ§λ κ²μ λ°©μ§νκΈ° μν μ’μ ν΄κ²° λ°©λ²μ λ²λ€μ 물리μ μΌλ‘ λλλ κ²μ΄λ€.
- λ°νμ μ μ¬λ¬ λ²λ€μ λμ μΌλ‘ λ§λ€κ³ λΆλ¬μ€λ κ²μΌλ‘, Webpack, Rollupκ³Ό κ°μ λ²λ€λ¬κ° μ§μνλ κΈ°λ₯μ΄λ€.
- νμ΄μ§μ λ‘λ© μλλ₯Ό κ°μ ν μ μλ€.
λ²λ€ λΆν μ€μ΄λλ²
- λΌμ΄λΈλ¬λ¦¬λ₯Ό μ 체μ μΌλ‘ λΆλ¬μμ μ¬μ©νλ κ²μ΄ μλ νμν λ©μλλ§ λΆλ¬μμ μ¬μ©νμ¬ κ³΅κ°μ ν보ν μ μλ€.
// lodash λΌμ΄λΈλ¬λ¦¬ μ 체 λΆλ¬μ€κΈ°
import _ from 'lodash';
// lodash λΌμ΄λΈλ¬λ¦¬μμ λ©μλ νλλ₯Ό λΆλ¬μ μ¬μ©
import find from 'lodash/find';
Reactμμμ μ½λ λΆν
- SPAμμλ μ¬μ©νμ§ μλ λͺ¨λ μ»΄ν¬λνΈκΉμ§ ν λ²μ λΆλ¬μ€κΈ° λλ¬Έμ 첫 νλ©΄μ΄ λ λλ§ λ λκΉμ§μ μκ°μ΄ μ€λ걸리λ κ²μ ν΄κ²°νκΈ° μν΄ μ½λ λΆν κ°λ μ λμ νλ€.
Static Import
- κΈ°μ‘΄ import ꡬ문μ λ¬Έμμ μμμ μμΉν΄μΌ νκ³ , λΈλ‘λ¬Έ μμμλ μμΉν μ μλ μ μ½ μ¬νμ΄ μμλ€.
Dynamic Import
- ꡬ문 λΆμ λ° μ»΄νμΌν΄μΌ νλ μ€ν¬λ¦½νΈμ μμ μ΅μν μν€κΈ° μν ꡬ문μ λλ€.
- ν¨μ λ΄λΆμμ Import λ¬Έμ μ¬μ©ν μ μλ€.
- React.lazyμ ν¨κ» μ¬μ©ν μ μλ€.
React.lazy()
- dynamic importλ₯Ό μ¬μ©ν΄ μ»΄ν¬λνΈλ₯Ό λ λλ§ ν μ μλ€.
- μ΄κΈ° λ λλ§ μ§μ°μκ°μ μ΄λμ λ μ€μΌ μ μλ€.
- React.lazyλ‘ κ°μΌ μ»΄ν¬λνΈλ λ¨λ μΌλ‘ μ°μΌ μ μκ³ , React.suspense μ»΄ν¬λνΈμ νμμμ λ λλ§ ν΄μΌνλ€.
import Component from './Component';
const Component = React.lazy(() => import('./Component'));
React.Suspense
- Routerλ‘ λΆκΈ°κ° λλμ΄μ§ μ»΄ν¬λνΈλ€μ lazyλ₯Ό ν΅ν΄ importνλ©΄ ν΄λΉ pathλ‘ μ΄λν λ μ»΄ν¬λνΈλ₯Ό λΆλ¬μ€κ² λλ©° λ‘λ©νλ μκ°μ΄ μκΈ°κ² λλ€.
- μμ§ λ λλ§μ΄ μ€λΉλμ§ μμ μ»΄ν¬λνΈκ° μμ λ λ‘λ©νλ©΄μ 보μ¬μ£Όκ³ , λ‘λ©μ΄ μλ£λλ©΄ λ λλ§μ΄ μ€λΉλ μ»΄ν¬λνΈλ₯Ό 보μ¬μ£Όλ κΈ°λ₯μ΄λ€.
React.lazyμ Suspenseμ μ μ©
- μ€κ°μ μ μ©μν€λ κ²λ³΄λ€λ μΉ νμ΄μ§λ₯Ό λΆλ¬μ€κ³ μ§μ νλ λ¨κ³μΈ Routeμ μ΄ λ κΈ°λ₯μ μ μ©μν€λ κ²μ΄ μ’λ€.
π μΆκ°λ‘ 곡λΆν λ΄μ©
[udemy] React μλ²½ κ°μ΄λ κ°μ 보기 (λ§€μΌ μ‘°κΈμ© μ΄λΌλ κΎΈμ€ν λ£κΈ°)
Studyμκ³Ό ν¨κ» μ§νμ€μΈ νλ‘μ νΈ κ΅¬ν
- Authentication
π μ€μν λ΄μ©
- Custom Hook
- Custom Hook μμ±μ‘°κ±΄
- μ½λλΆν
- React.lazy
- React.Suspense