Slack(μ¬λ) μλΉμ€λ₯Ό λ°λΌ λ§λ€λ Reacr Web κ°λ°
β ν΄λΉ κ°μλ₯Ό μκ° ν μμ±ν λ³΅μ΅ λ° κ°μΈ μ€ν°λ κΈ°λ‘μ λλ€.
βοΈ HTMLκ³Ό CSSλ Slack κ°λ°μ λκ΅¬λ‘ μ°Έκ³ ν΄μ κ°μ Έμ΄
βοΈ λ°±μλ μλ²μ μμ
μ μλ£κ° λμλ€λ κ°μ νμ νλ‘ νΈμλ μμ
npx sequelize db:create
μ€ν€λ§ μμ±npm run dev
ν
μ΄λΈ μμ±npx sequelize db:seed:all
κΈ°μ΄ λ°μ΄ν° λ£κΈ°npm run dev
NPM λ°±μλ μλ² μ€νβ μ¬λμ κΈ°λ³Έ ꡬ쑰
paths
path μ€μ μ νλ©΄ μ λ κ²½λ‘μ²λΌ νμΌμ import ν΄μ κ°μ Έμ¬ μ μλ€.// κΈ°μ‘΄ import
import A from ../../../../hello.js
// path μ€μ μ
import A from @src/hello.js
"strict": true
typescript μ¬μ© μ strict μ€μ μ μνκ²λλ©΄ any νμ
μ μ¬μ©ν μ μμΌλ―λ‘ νμ
μ€ν¬λ¦½νΈμ μ΄μ μ λ릴 μ μλ€. (μ λμ€ν¬λ¦½νΈ κΈμ§βπ
π
)extensions
babelμ΄ μ²λ¦¬ν νμ₯μ λͺ©λ‘alias
tsconfigμμ μ€μ ν paths μ λμΌκ° μ»΄ν¬λνΈλ μ»΄ν¬λνΈ ν΄λ μλ index.tsx(JSX)
μ styles.tsx(μ€νμΌλ§)
μμ
<Switch>
μ¬λ¬κ°μ λΌμ°ν° μ€μ ν΄λΉνλ νλμ νλ©΄λ§ νμ
<Redirect exact path="/" to="/login" />
pathκ° '/'λ‘ λλλ©΄ login νμ΄μ§λ‘ λ³κ²½
<BrowserRouter>
νκ·Έλ‘ κ°μΈμ ΈμΌνλ€.historyApiFallback
μ€μ μΌλ‘ μλ²μλ μ€μ λ‘ μλ μ£Όμμ΄μ§λ§ 리μ‘νΈ λΌμ°ν°λ₯Ό μ€μ μ£Όμ μ²λΌ μ¬μ©ν μ μλλ‘ μ€μ ν΄μ€λ€.μ½λ μ€ν리ν (Code Splitting) π€
webpack, rollup, browserifyμ κ°μ λͺ¨λ λ²λ€λ¬λ₯Ό μ΄μ©νμ¬ λ§λ€μ΄μ§ νλμ λ²λ€ νμΌμ μ¬λ¬ κ°μ λ²λ€ νμΌλ‘ λλλ κ²μ μλ―Ένλ€.
μ½λ μ€ν리ν μ μ¬μ©νλ μ΄μ ? π€
μλ°μ€ν¬λ¦½νΈλ‘ μ ν리μΌμ΄μ μ κ°λ°νκ² λλ©΄, κΈ°λ³Έμ μΌλ‘ νλμ νμΌμ λͺ¨λ λ‘μ§λ€μ΄ λ€μ΄κ°κ² λλ€. νλ‘μ νΈμ κ·λͺ¨κ° 컀μ§μλ‘ μλ°μ€ν¬λ¦½νΈ νμΌ μ©λλ 컀μ§λ©΄μ, μΈν°λ·μ΄ λλ¦° νκ²½μμλ νμ΄μ§ λ‘λ© μλκ° ν¨κ» λλ €μ§λ€.μ§κΈ λΉμ₯ νμν μ½λκ° μλλΌλ©΄ λ°λ‘ λΆλ¦¬μμΌμ, λμ€μ νμν λ λΆλ¬μμ μ¬μ©ν μ μλλ‘ νλ μ½λ μ€ν리ν μ ν΅ν΄, νμ΄μ§μ λ‘λ© μλλ₯Ό κ°μ ν μ μλ€.
npm install @loadable/component
loadableμ μ¬μ©νμ¬ μ½λμ€ν리ν
μμ
μ½λ μ€ν리ν μμ μ μ΄λ€ μ»΄ν¬λνΈλ₯Ό λΆλ¦¬ν΄μΌ νλκ° ν·κ°λ¦΄ λλ νμ΄μ§λ‘ λ¨μλ‘ μ°μ μκ°μ νλ©΄ μ½λ€.
npm install @emotion/react
emotion μ€μΉ