JavaScript/React12 [React] SPA ๋? SPA(Single Page Application) : ํ ๊ฐ์ ํ์ด์ง๋ก ์ด๋ฃจ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ํต์ ์ธ ์น ๋ฐฉ์(SSR : ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง) ์ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋ํ ๋๋ง๋ค ์๋ก์ด html ์ ๋ฐ์์ค๊ณ ํ์ด์ง๋ฅผ ๋ก๋ฉํ ๋๋ง๋ค ์๋ฒ์์ ๋ฆฌ์์ค๋ฅผ ์ ๋ฌ๋ฐ์ ํด์ํ ๋ค ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ด์๋ค. ์ฆ, ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ํ๋ฉด์ ์๋ฒ์์ ์ค๋นํ๋ค. ์ด์ฒ๋ผ ์ ํต์ ์ธ ์น ๋๋ถ๋ถ์ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ๋ฐฉ์์ด๋ค. ๊ทธ๋ฌ๋ ์์ฆ์๋ ์น์์ ์ ๊ณตํ๋ ์ ๋ณด๊ฐ ์ ๋ง ๋ง๊ธฐ ๋๋ฌธ์ ์๋ก์ด ํ๋ฉด์ ๋ณด์ฌ์ค ๋๋ง๋ค ์๋ฒ์์ ๋ชจ๋ ๋ทฐ๋ฅผ ์ค๋นํ๋ค๋ฉด ์ฑ๋ฅ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. (ํธ๋ํฝ, ์๋ฒ์ ๋์ ๋ถํ ๋ฑ) ๊ทธ๋์ ๋ฆฌ์กํธ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํน์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ทฐ ๋ ๋๋ง์ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ด๋นํ๋๋ก ํ๊ณ ์ฐ์ ์ .. 2021. 11. 8. [React] ํจ์ ์ปดํฌ๋ํธ์์ ๋ฆฌ๋ ๋๋ง ์ต์ ํ๋ฅผ ์ํ ๋ฐฉ๋ฒ ํจ์ ์ปดํฌ๋ํธ์์ React.memo() ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ง์ผ๋ก ์ปดํฌ๋ํธ ์ต์ ํ๊ฐ ๋๋์ง๋ ์๋๋ค. ์๋ฅผ ๋ค์ด ์ต์ ์ํ์ todos ๋ฅผ ์ฐธ์กฐํ๋ onClick ๊ฐ์ ํจ์๊ฐ ์์ด์ todos ๋ฐฐ์ด์ด ๋ฐ๋ ๋๋ง๋ค ํจ์๊ฐ ์๋ก ๋ง๋ค์ด์ง๋ค๊ณ ํ ๋, ์ด๋ ๊ฒ ํจ์๊ฐ ๊ณ์ ๋ง๋ค์ด์ง๋ ์ํฉ์ ๋ฐฉ์งํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง์ด๋ค. 1. useState ์ ํจ์ํ ์ ๋ฐ์ดํธ ๊ธฐ๋ฅ ์ฌ์ฉํ๊ธฐ ์๋ฅผ ๋ค์ด ๊ธฐ์กด์ setTodos ํจ์๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ๋ฉด, ์ด ํจ์๋ฅผ ์ฌ์ฉํ ๋ ์๋ก์ด ์ํ๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฃ๋ ๋์ ์ํ ์ ๋ฐ์ดํธ๋ฅผ ์ด๋ป๊ฒ ํ ์ง ์ ์ํด์ฃผ๋ ์ ๋ฐ์ดํธ ํจ์๋ฅผ ๋ฃ์์ผ๋ก์จ ํจ์ํ ์ ๋ฐ์ดํธ๋ฅผ ํ ์ ์๋ค. setNumber(number+1) ์ด ์๋๋ผ setNumber(preNumber => preNumber + 1) ๊ณผ ๊ฐ์ ์ ๋ฐ.. 2021. 10. 27. [React] Hooks ์ ๋ฆฌ ๐ก useState // useState ํจ์ ์ฌ์ฉํ๊ธฐ import { useState } from "react"; const Counter = () => { const [value, setValue] = useState(0); return ( ํ์ฌ ์นด์ดํฐ ๊ฐ์ {value} ์ด๋ค. setValue(value + 1)}>+1 setValue(value - 1)}>-1 ); }; export default Counter; useState ๋ ํ๋์ ์ํ ๊ฐ๋ง ๊ด๋ฆฌํ ์ ์์ผ๋ ์ปดํฌ๋ํธ์์ ๊ด๋ฆฌํด์ผ ํ ์ํ๊ฐ ์ฌ๋ฌ ๊ฐ๋ผ๋ฉด useState ๋ฅผ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํ๋ฉด ๋๋ค. useState(0) ์ด๋ ์ด๊ธฐ๊ฐ์ 0 ์ผ๋ก ํ๊ฒ ๋ค๋ ์๋ฏธ์ด๋ค. const [value, setValue] ์์ ์ฒซ ๋ฒ์งธ ์์์ธ value ๋ .. 2021. 10. 26. [React] ์ปดํฌ๋ํธ ์์๋ณด๊ธฐ โ ๋น๊ตฌ์กฐํ ํ ๋น const { name, favoriteNumber, children } = this.props; // ๋น๊ตฌ์กฐํ ํ ๋น const { number, fixedNumber } = this.state; // ๋น๊ตฌ์กฐํ ํ ๋น this.props ๊ฐ ๊ฐ์ง name, favoriteNumber, children ๊ฐ์ { name, favoriteNumber, children } ์ ๋ฃ์ด์ค๋ค. โ constructor ์์ด state ์ด๊น๊ฐ ์ง์ ํ๊ธฐ class Counter extends Component { state = { number: 0, fixedNumber: 0 } render(){ const {number, fixedNumber} = this.state; return ( ... ); } .. 2021. 10. 26. [React] ๊ธ์ฐ๊ธฐ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ โ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น yarn add quill : ๊ธ ์์ฑํ๋ Editor ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น yarn add styled-components : CSS ๊ด๋ จ ๋ฆฌ์กํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์์ ๊ฐ์ฅ ์ธ๊ธฐ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ๋ฆฌ๋์ค ํ์ฅ ํ๋ก๊ทธ๋จ : https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd Redux DevTools Redux DevTools for debugging application's state changes. chrome.google.com ๋ฆฌ๋์ค ๊ฐ๋ฐ ํด์ ๋ค์ด๋ฐ์ผ๋ฉด ํฌ๋กฌ์ผ๋ก react ๋ฅผ ์คํ์์ผ์ ๊ฐ๋ฐํ ๋ redux state ๋ณํ๋ฅผ ํ์ธํ ์ ์๋ค. โ ๊ตฌ์กฐ 1. page ์.. 2021. 10. 22. [React] Redux ํด๋ ๊ตฌ์กฐ ์ ๋ฆฌํ๊ธฐ ์์ ํฌ๋งท์ผ๋ก ์ ๋ฆฌ๋ฅผ ํด๋ณด์๋ค. ๐ก ํ๋ฆ : components -> modules(action ์์ฑ) -> containers (dispatch, reducer, state ๊ฐ ๋ณ๊ฒฝ) -> components (UI) index.js ์์ reducers ์ํฌํธ ๊ฒฝ๋ก ์์ ํ๊ธฐ import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import reducers from './modules/bpp' import reportWebVitals from './reportWebVitals'; import { Provider } from 'react-redux' import { .. 2021. 10. 21. [React] Redux ๋? ๐ก Redux redux๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ state ๋ฅผ ์ฌ๋ฌ ์ปดํฌ๋ํธ์ ์ ๋ฌํ๊ณ ๊ด๋ฆฌํ๊ธฐ๊ฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ store ๋ฅผ ํตํด ์ฌ๋ฌ ์ปดํฌ๋ํธ์ ์ฝ๊ฒ ์ ๋ฌํ๊ณ ๊ด๋ฆฌํ ์ ์๋๋ก ๋ง๋ ๋ค. ์ฆ Flux ์ ๊ฐ์ ๊ตฌ์กฐ์ด๋ค. React ์์ ํ๊ฒฝ์์ Redux ์ฌ์ฉํ๊ธฐ (๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น) npm install --save redux npm install --save react-redux npm install --save redux-actions ๐ก ํ๋ฆ : VIEW -> ACTION -> (STORE) -> REDUCER -> DISPATCH(ACTION) -> STATE -> UI index.js ์์ฑ store ๋ฅผ ์์ฑํ๊ณ store ๋ฅผ ์ props ๋ก ์ ๋ฌํด์ ์ปดํฌ๋ํธ ํธ๋ฆฌ์ ์ ๊ทผํ ์ ์๋๋ก ๋ง๋ ๋ค. ๊ทธ๋ฆฌ.. 2021. 10. 21. [React] React ์ด๋ฒคํธ ์ฌ์ฉํ๊ธฐ 1. onClick onClick ์ด๋ฒคํธ๋ ํน์ element ๊ฐ ํด๋ฆญ๋์ ๋ ์ ์๋ ํจ์๋ฅผ ํธ์ถํ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ค. 2. onChange onChange ์ด๋ฒคํธ๋ ํน์ element ์ ๋ณํ๊ฐ ์๊ฒผ์ ๋ ์ ์๋ ํจ์๋ฅผ ํธ์ถํ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ค. 3. mousemove mousemove ์ด๋ฒคํธ๋ ํน์ tag ์์ญ ์์์ ๋ง์ฐ์ค ์ปค์๊ฐ ์์ง์ผ ๋ ๋ฐ์ํ๋ค. 4. onMouseOver onMouseOver ์ด๋ฒคํธ๋ ํน์ tag ์์ญ ์์ ๋ง์ฐ์ค ์ปค์๊ฐ ์ง์ ํ ๋ ๋ฐ์ํ๋ค. 5. onMouseOut onMouseOut ์ด๋ฒคํธ๋ ํน์ tag ์์ญ ์์ ๋ง์ฐ์ค ์ปค์๊ฐ ์ง์ ํ๋ค๊ฐ ๋ฒ์ด๋ ๋ ๋ฐ์ํ๋ค. 6. onKeyDown, onKeyPress, onKeyUp onKeyDown ๊ณผ onKeyPress ๋ ํค๋ฅผ.. 2021. 10. 20. [React] React ์์ bootstrap ์ฌ์ฉํ๊ธฐ(ReactStrap) ๐ก bootstrap ์ด๋? ํ๋ก ํธ์๋ ๋์์ธ์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก ๋์์ฃผ๋ html, css, js ํ๋ ์์ํฌ์ด๋ค. ์ด๋ฐ ๋ถํธ์คํธ๋ฉ์ react ์์ ์ฌ์ฉํ ์ ์๋๋ก ํจํค์ง๋ก ๋ง๋ ๊ฒ์ด reactstrap ์ด๋ค. 01. Alert ์ฌ์ฉํ๊ธฐ reactstrap ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋จผ์ reactstrap ์ ์ค์นํ๋ค. 1. VSCode ๋ก ์์ ์ ํ๊ธฐ ๋๋ฌธ์ VSCode์์ react ์์ ์ ํ๋ ํด๋ ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ์ ํฐ๋ฏธ๋์ ์ด๊ณ reactstrap ์ ์ค์นํ๋ npm install --save reactstrap ๋ช ๋ น๊ณผ bootstrap ์ ์ค์นํ๋ npm install --save bootstrap ์ ์คํํ๋ค. 2. App.js ์์ reactStrapTest.js ํ์ผ์ ์ํฌํธํด์ ์ฌ์ฉํ .. 2021. 10. 20. ์ด์ 1 2 ๋ค์