React์ Material UI๋ผ๋ React UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ํ๋ก์ ํธ๋ฅผ ํ๋ ์ค, ์ ๋ชฉ๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. findDOMNode is deprecated in StrictMode. KOS ํ๋ก์ ํธ์์๋ ๋ฐ๊ฒฌํ๋ ์ค๋ฅ๋ฐ ๋์๋กญ์ง ์๊ฒ ๋๊ฒผ๋๋ ์ฌ๊ธฐ์ ๊ฑธ๋ฆฌ์ ๊ฑฐ๋ฆฌ๋๊ตฐ ใ ใ ์ด์จ๋ ํด๊ฒฐํด๋ณด์. ์ด์ ์ ๋ฐ ์ค๋ฅ๊ฐ ๋จ๋ ์ด์ ๋ ๋ฌด์์ผ๊น? ๋จผ์ , create-react-app์ ํตํด React ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด, index.js๊ฐ ๋ค์๊ณผ ๊ฐ์ด ์๊ฒผ๋ค. import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import reportWebVitals from './reportWebVitals'; ReactDOM..
React JSX์์ array๋ dictionary๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด forEach ๋ฌธ์ ์ผ๋ค๋ฉด, map์ผ๋ก ๋ณ๊ฒฝํด์ผํ๋ค. map ํจ์๋ ์ฐ์ฐ ํ์ ์์ฑ๋ ๊ฒฐ๊ณผ array / dictionary๋ฅผ ๋ฐํํด์ฃผ๊ธฐ ๋๋ฌธ์ JSX์์ ๋ํ๋๊ฒ ๋์ง๋ง, forEach๋ฌธ์ ๋ณ์์๋ง ์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ์ ์ฉ๋๊ณ ๋ฐํํด์ฃผ์ง ์๋๋ค. ๋ฐ๋ผ์, forEach ๋ฌธ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ฐ์ฐ๋ง ๋๊ณ ๊ฒฐ๊ณผ๋ JSX๋ก ์ถ๋ ฅ๋์ง ์๋๋ค.
module.exports = { 'parser': '@typescript-eslint/parser', 'plugins': ['@typescript-eslint'], 'env': { 'commonjs': true, 'browser': true, 'es2021': true, 'node' : true }, 'extends': [ 'airbnb', 'airbnb/hooks', 'plugin:@typescript-eslint/recommended' ], 'parserOptions': { 'project': './tsconfig.json', 'ecmaFeatures': { 'jsx': true, }, 'ecmaVersion': 12, 'sourceType': 'module', }, 'rules': { 'inden..
Typescript ์ฐธ๊ณ : https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html (Typescript ๊ณต์ ์ฌ์ดํธ) ๋ฐฐ์ฐ๋ ์ด์ JS์์๋ Type์ด ๊ณ์ ์ฒดํฌ๋์ง ์๋๋ค. 1. ์ด๋ ์๋ฌต์ ํ๋ณํ, hoisting, ๋ณต์ก์ฑ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ค. ์ด๋ฌํ ์ฝ๋ ์์ ์์์น ๋ชปํ ๋ฒ๊ทธ๋ฅผ ์์ ๊ธฐ ์ํด typescript๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ค. hoisting : ๋์ด์ฌ๋ฆฐ๋ค๋ ๋ป. javascript์์ ์ ์ธ๋ฌธ์ ๋์ด์ฌ๋ ค ์ฝ๋์์ ์ฌ์ฉํ ๋ ์์์ ์๊ด์์ด ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ํ๋ ๊ธฐ์ . typescript๋ ๋ณต์กํ ์์ธ์ฒ๋ฆฌ ์ฝ๋ ์์ด ์ด๋ฅผ ์ํํ๋ค. 2. ํ์ ์์๋ ์ถํ์ ๋ณธ์ธ์ด ์ง ์ฝ๋๋ฅผ ๋ณด์์ ๋ ํ์ ์ด ์ ์๋์ด ์์ง ์๋ค๋ฉด ํ๋..
์์กด์ฑ ์๋ฌ ํด๊ฒฐ ์๋ฌ ๋ฐ์ ์ด๋ฐ ์ค๋ฅ๊ฐ ๋ด๋ค. CRA๊ฐ ์ ๊ณตํ๋ react-scripts ํจํค์ง๊ฐ eslint 6.6.0 ๋ฒ์ ์ ์์กดํ๋๋ฐ, 7.2.0 ๋ฒ์ ์ ์ค์นํด์ ๊ทธ๋ ๋ค๊ณ ํ๋ค. ์ ๋ฐ์ ๋์ค๋ ํด๊ฒฐ๋ฐฉ๋ฒ์ด ์๋๋ฐ, ๋ฐ๋ผํด๋ ํด๊ฒฐ๋์ง ์๋๋ค ใ ... ์ ๋ฒ์๋ ๊ฐ์ ๋ฌธ์ ๋ก ์์ฉ์ฌ์ ์ด๋ฒ์ ์ ๋๋ก ๊ฐ์ก๊ณ ํด๊ฒฐํด๋ณด๋ ค๊ณ ํ๋ค. ์ด์ ๋ฐ๊ฒฌ ์ด์ ๋ ๊ตฌ๊ธ๋งํ๋ค๊ฐ ๋ฐ๊ฒฌํ๋๋ฐ(https://github.com/wesbos/eslint-config-wesbos/issues/17) , react-scripts์ eslint ์์กด์ฑ ๋ฒ์ ๊ณผ airbnb linting์์์ eslint ์์กด์ฑ ๋ฒ์ ์ด ์ผ์นํ์ง ์์์ ๋์ค๋ ๋ฌธ์ ์๋ค. ๋ป์ง ๊ทธ๋์ ์ผ๋จ react-scripts version์ `npm view react-s..
csuos ๋ธ๋ก๊ทธ์๋ ๊ฐ์ ๊ธ์ด ์์ต๋๋ค. ๐ csuos.github.io/nera-review-heeeun ์๋ ํ์ธ์, CSUOS์ ์ฒซ ํ๋ก์ ํธ NERA์์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋งก๊ณ ์๋ '์ฐํฌ์'์ด๋ผ๊ณ ํฉ๋๋ค. ํ์ฌ(2020-09-04์ผ ๊ธฐ์ค) CSUOS์ ๋ฉค๋ฒ๋ฅผ ๋ชจ์งํ๊ณ ์๋๋ฐ, ํน์๋ ์ง์์ ๋ง์ค์ด์๋ ๋ถ๋ค๊ป ๋์์ด ๋ ๊นํด์ ํฌ์คํ ์ ์์ฑํ๊ฒ ๋์์ต๋๋ค. ์กฐ๊ธ์ด๋๋ง ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ, CSUOS๋ฅผ ์ ํ์ ๋๋ถํฐ ํ์ฌ๊น์ง ๋๋ ์ ์ด๋ ์ป์ ๊ฒ๋ค์ ์ง์ํ๊ฒ ์์ฑํด๋ณด๊ฒ ์ต๋๋ค.๐ CSUOS์ ์์ ์ฒ์ CSUOS๋ฅผ ์ ํ๊ฒ ๋ ๊ฑด ํ์ด์ค๋ถ์์ ๋ชจ์ง๊ณต๊ณ ๋ฅผ ๋ณด์์ ๋์ ๋๋ค. ํ์ฌ NERA์ ํ๋ก์ ํธ ๋งค๋์ ์ด์ '์ด์ํด' ํ์ฐ๋์ด ์ฌ๋ฆฌ์ ๊ณต๊ณ ๋ฅผ ๋ณด๊ณ ์ง์ํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. NERA ๋ชจ์ง ๊ณต๊ณ : h..
React Hook React ๊ณต์์ฌ์ดํธ ์ฐธ์กฐ : https://ko.reactjs.org/docs/hooks-intro.html Hook ์๊ฐ Hook์ ์ด๋ค ๊ฒ์ด๊ณ ์ ๋์ค๊ฒ ๋์์๊น? Hook์ด๋? ์ฐ์ Hook์ React 16.8 ๋ฒ์ ์ ์๋ก ์ถ๊ฐ๋ ์ต์ ๊ธฐ๋ฅ์ผ๋ก, ํด๋์คํ ์ปดํฌ๋ํธ์ ๋จ์ ์ ๊ทน๋ณตํ๊ณ ์ ๋์จ ํจ์ํ ์ปดํฌ๋ํธ์ ๋ํ ๊ธฐ๋ฅ์ด๋ค. Hook์ ํจ์ํ ์ปดํฌ๋ํธ๋ก๋ ํด๋์คํ ์ปดํฌ๋ํธ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋๋ก ํด์ค๋ค. ํจ์ํ ์ปดํฌ๋ํธ๋? // ํด๋์คํ ์ปดํฌ๋ํธ import React, { Component } from 'react'; class App extends Component { render(){ return ( //jsx ); } } export default App; // ํจ์ํ..
Comment