๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

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.