π Front-End/React.js
μ¬μ©μμκ² μ
λ ₯μ λ°λ νκ·Έλ , λ± μ‘΄μ¬ νλλ° React μμ μ§μ νΈλ€λ§ ν λλ μ΄λ»κ² νλ μ§ μμλ³΄κ² μ΅λλ€. useState μ΄μ© β input μ value μ€μ import { useState } from 'react'; const DiaryEditor = () => { const [author, setAuthor] = useState(''); // author λΌλ state λ setAuthor κ° μλλ©΄ μνλ³νκ° μΌμ΄λμ§ μμ΅λλ€. // κ·Έλ¬λ―λ‘ νλ©΄ input μ°½μ μ΄λ ν κ²λ μμλ‘ μ
λ ₯ ν μ μμ΅λλ€. return ( μ€λμ μΌκΈ° ); }; export default DiaryEditor; μ΄κΈ°μ input μλ μλ¬΄λ° κ°λ μ
λ ₯λμ§ μμ΅λλ€. μ΄μ λ input νκ·Έμ val..
π Front-End/React.js
μ»΄ν¬λνΈμ λ°μ΄ν°λ₯Ό μ λ¬νλ λ°©λ² λ°μ΄ν°λ₯Ό μ λ¬νλ λ°©λ² β μ΄κΈ° κ°μ μ λ¬νκ³ μΆμ κ²½μ° {} μ μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ§μ ν©λλ€. JSXμμ νΉμ νκ·Έμ κ°μ μ λ¬νκΈ° μν΄μλ {} λ₯Ό μ΄μ©νκ±°λ λ¬Έμμ΄λ‘ μ λ¬νμ¬μΌ ν©λλ€ β App.js mport './App.css'; import MyHeader from './my_header'; import Counter from './count'; function App() { return ( // 5λΌλ κ°μ μ λ¬ ν©λλ€. ); } export default App; λΆλͺ¨ μ»΄ν¬λνΈμΈ App μμ μμ μ»΄ν¬λνΈμΈ Counter μκ² κ°μ μ λ¬ λ°μ΄ν°λ₯Ό μ¬μ©νλ λ°©λ² β β Count.js import React, { useState } from 'react';..
π Front-End/React.js
κ³μν΄μ λ³ννλ λμ μΈ κ°, κ°μ λ°λΌ λ€λ₯Έ νλμ μννκ² ν©λλ€. Reactμ Stateλ β μ»΄ν¬λνΈκ° κ°λ κ³μ κ°μ΄ λ°λλ λμ μΈ λ°μ΄ν° μνλ₯Ό λ°κΎΈλ λ±μ κ΄λ¦¬λ μνλ₯Ό κ°μ§ μ»΄ν¬λνΈκ° μ§μ κ΄λ¦¬νκ² λ©λλ€. β useState() μ»΄ν¬λνΈλ μμ μ κ°μ§ μν(state)κ° λ³ννλ©΄, νλ©΄μ λ€μ κ·Έλ € reRender λ₯Ό ν©λλ€. μ¦, ν¨μκ° λ€μ νΈμΆ λ©λλ€. β λ²νΌμ λλ₯Ό λλ§λ€ +- 1μ© λ³ννλ Counter import React, { useState } from 'react'; const [ count, setCount ] = useState(0); // const [ μν κ°, μν λ³ν ν¨μ ] = useState(μ΄κΈ° κ°); // counter.js import React,..
π Front-End/React.js
λ€μ΄κ°κΈ° μ React λμ λ°©μ β β λ¨Όμ μ΅μμ μ»΄ν¬λνΈ μ μ import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; ReactDOM.render( // (3) , document.getElementById('root') // (2) ); // If you want to start measuring performance in your app, pass a function // to log results (for example: reportWebVitals(console.log)) // or send to an analytics endpoint. Learn more..
π Front-End/React.js
React Appμ λ§λλ λ°©λ² β λΌμ΄λΈλ¬λ¦¬μ νμ© Reactμ packageλ₯Ό λ€μ΄λ‘λ λ°λλ€κ³ λ°λ‘ μ¬μ©ν μλ μμ΅λλ€. μΆκ°μ μΈ μλμ κ°μ λΌμ΄λΈλ¬λ¦¬λ€μ΄ νμ ν©λλ€. λ¬Όλ‘ μ΄μΈμλ μ‘΄μ¬ ν©λλ€. β Boiler Plate (Create-React-App) 볡μ‘ν νκ²½ μ€μ κΉμ§ λ€ ν΄λμ package λ₯Ό κ°μΌ package 미리 νμ μ€λΉνκ³ μ¬μ©λ§ νλ©΄ λ©λλ€. Create-React-App β μ€μΉ λ°©λ² npx create-react-app μ΄λ¦ β yarn 1. npm install -g yarn 2. yarn create react-app νμΌλͺ
β μ€μΉ ν μ΄κΈ° νλ‘μ νΈ νμΌ . βββ README.md βββ package-lock.json βββ package.json βββ p..
π Front-End/React.js
React.js Reactλ μΉ νλ μμν¬λ‘, μλ°μ€ν¬λ¦½νΈ λΌμ΄λΈλ¬λ¦¬μ νλλ‘μ μ¬μ©μ μΈν°νμ΄μ€λ₯Ό λ§λ€κΈ° μν΄ μ¬μ©λλ€. μΆμ² : μν€λ°±κ³Ό Why React.js β β React λ Component κΈ°λ°μ UI λΌμ΄λΈλ¬λ¦¬ λ§μ½ Header μμμ λ¬Έμ κ° μ겨μ μμ ν΄μΌ λλ μν©μ΄λ©΄ κΈ°μ‘΄ λ°©μμ Header λ₯Ό ν¬ν¨νκ³ μλ λͺ¨λ νμΌμ μμ ν΄μΌ λ©λλ€. νμ§λ§ μ»΄ν¬λνΈν λ°©μμ μ»΄ν¬λνΈκ° μ μλ νμΌ νλλ§ μμ νλ©΄ λ€λ₯Έ νμ΄μ§λ€μ μλμΌλ‘ μμ λ©λλ€. μ¦, 곡ν΅μΌλ‘ μ¬μ©λλ μμμ μμ μ¬νμ΄λ, λ¬Έμ κ° λ°μ νμ κ²½μ° μμ νκΈ° μμνκ³ , μ μ§λ³΄μκ° μ’μμ§λλ€. β React λ μ μΈν νλ‘κ·Έλλ° νλ‘ νΈμλ μΈ‘λ©΄μμ μ€λ₯Έμͺ½μ μ μΈν νλ‘κ·Έλλ°μ΄ μμ¦ μλμ λ κ°κ΄ λ°κ³ μμ΅λλ€. β Virt..
π Front-End/TypeScript
ES6 μ λΉμ· ν©λλ€. λͺ¨λμ μ μ λ³μμ ꡬλΆλλ μ체 μ ν¨ λ²μλ₯Ό κ°μ§λ©° export, import μ κ°μ ν€μλλ₯Ό μ¬μ©νμ§ μμΌλ©΄ λ€λ₯Έ νμΌμμ μ κ·Όν μ μμ΅λλ€. μ¬μ©λ°©λ² β Export ES6μ exportμ κ°μ λ°©μμΌλ‘ λ³μ, ν¨μ, νμ
, μΈν°νμ΄μ€ λ±μ λΆμ¬ μ¬μ©ν©λλ€. // types.ts export interface Todo { title: string; checked: boolean; } β Import ES6μ importμ λμΌν λ°©μμΌλ‘ μ¬μ©ν©λλ€. // app.ts import { Todo } from './types' let item: Todo = { title: 'ν μΌ 1', checked: false } β Tip import λ₯Ό μ
λ ₯νκ³ {} λΉ κ°μ²΄λ₯Ό λ¨Όμ ..
π Front-End/TypeScript
νμ
μ€ν¬λ¦½νΈ μ½λμμ νΉμ νμ
μ΄ λ€λ₯Έ νμ
μ μ λ§λμ§λ₯Ό μλ―Έν©λλ€. β ꡬ쑰μ νμ΄ν μμ ꡬ쑰μ νμ΄ν(structural typing)μ΄λ μ½λ ꡬ쑰 κ΄μ μμ νμ
μ΄ μλ‘ νΈνλλμ§μ μ¬λΆλ₯Ό νλ¨νλ κ²μ
λλ€. β μΈν°νμ΄μ€ interface Developer{ name: string; skill: string; } interface Person{ name: string; } let developer: Developer; let person: Person; developer = person; // μλ¬μ΄μ : μΌμͺ½μ μλ λ³μκ° λ ν° κ΄κ³λ₯Ό κ°μ§κ³ μμ΄μ person = developer; // μλ¬κ° μλ¬λ€. μ€λ₯Έμͺ½μ μλ νμ
μ΄ λ λ§μ μμ±μ κ°μ§κ±°λ, ꡬ쑰μ μΌλ‘ λ μ»Έμ λ μΌμͺ½κ³Ό νΈνμ΄..