header-img
Info :
FRONTEND/React 60
list_img
[React+Css] ํƒญ ๋งŒ๋“ค๊ธฐ (+ styled-components)
2023.04.12
์ฐธ๊ณ . app.js์—์„œ ๋ฐ”๋กœ ๊ทธ๋ƒฅ ํ…Œ์ŠคํŠธ ํ•˜๊ณ  ์žˆ์Œ ๊ธฐ๋ณธ. ๋””์ž์ธ ์•ˆ ๋จน์ธ ๋ฒ„์ „ import './App.css'; import React, {useState} from 'react'; function App() { const [currentTab, setCurrentTab] = useState(0); // ํ…Œ์ŠคํŠธ๋‹ˆ๊นŒ ๋ฐฐ์—ด๋กœ ๊ด€๋ฆฌํ•ด๋ณผ๊ฒŒ์š” const menuArr = [ {name: 'Tab1', content:'์ฒซ๋ฒˆ์งธ ํƒญ์ด์—์š” ๐Ÿ‘ผ'}, {name: 'Tab2', content:'๋‘๋ฒˆ์งธ ํƒญ์ด์—์š” ๐Ÿ˜‡'}, {name: 'Tab3', content:'์„ธ๋ฒˆ์งธ ํƒญ์ธ๋ฐ์š” ๐Ÿ˜Š'} ] // ํƒญ ๋‚ด์šฉ ๋„ฃ์–ด์ค„๊ฑฐ์—์š” const selectMenuHandler = (index) => { setCurrentTab(index);..
list_img
[javascript] JS๋กœ Linked List ๊ตฌํ˜„
2023.04.12
1. ๊ทธ๋ƒฅ ์ฝ”๋“œ์—์„œ ๋ฐœ๋ผ์ค„ ๋•Œ /** ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ธ ๋‹จ์ผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Single Linked List) ๋ฅผ ๋งŒ๋“ค์–ด๋ณผ๊ฒŒ์š” */ // ๋…ธ๋“œ ๊ฐ์ฒด ์ƒ์„ฑ var Node = function(data) { // ๋ฐ์ดํ„ฐ์™€ ๋‹ค์Œ ๋…ธ๋“œ์˜ ์ฃผ์†Œ์ง€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•จ this.data = data; this.nextNode = null; } // Head ์ง€์ • var Head = null; // ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ ๋งŒ๋“ค์ž var Node1st = new Node("๊น€๋ฉ๋ฉ๐Ÿถ"); // Head์— ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ ์ฐธ์กฐ head = Node1st; // ๋‘๋ฒˆ์งธ ๋…ธ๋“œ ๋งŒ๋“ค์ž var Node2nd = new Node("์ด๋ƒฅ๋ƒฅ๐Ÿฑ") // ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ์˜ ๋‹ค์Œ ๋…ธ๋“œ ์ฃผ์†Œ์ง€ ๊ฐ’์œผ๋กœ ๋‘๋ฒˆ์งธ ๋…ธ๋“œ๋ฅผ ์ฐธ์กฐ Node1st.nextNode =..
list_img
[React] localstorage (feat. login / ์ˆ˜์ •)
2023.04.11
๊ฒŒ์‹œํŒ์„ ๋งŒ๋“œ๋ ค๊ณ  ํ•˜๋‹ค๋ณด๋ฉด ํ”ผํ•  ์ˆ˜ ์—†๋Š” ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ธ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ. localstorage๋ฅผ ์‚ฌ์šฉํ•ด์„œ login์„ ๊ตฌํ˜„ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋จผ์ € localstorage๋ž€? ๋ธŒ๋ผ์šฐ์ € ์ƒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ํ˜„์žฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์—ญ์— ์ ‘๊ทผ ๊ฐ€๋Šฅ ๋ธŒ๋ผ์šฐ์ € ์ƒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” LocalStorage ์™€ SessionStorage ์˜ ๊ธฐ๋Šฅ์  ์ฐจ์ด๋Š” ๋ญ”๋ฐ ? Session Storage๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ํœ˜๋ฐœ์„ฑ ์ €์žฅ๊ณต๊ฐ„ Local Storage๋Š” ๋ธŒ๋ผ์šฐ์ € ์ฒญ์†Œ๋ฅผ ํ•˜์ง€ ์•Š๋Š” ์ด์ƒ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š” ์ €์žฅ๊ณต๊ฐ„ ๋‘๊ฐœ ๋‹ค ๊ฐ๊ฐ 5MB ์ •๋„์˜ text๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜๋‹ˆ ์‚ฌ์šฉํ•  ๋•Œ ์ฐธ๊ณ ํ•ด์„œ ์ ์ ˆํžˆ ์„ž์–ด ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. ๐Ÿ–ฅ How to Use? setItem(ke..
list_img
[React ERROR] Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?
2023.04.11
๋ฆฌ์•กํŠธ ํ”„๋ก ํŠธ์™€ ๊ด€๋ จํ•œ ๊ฐ„๋‹จ ์—๋Ÿฌ ํ•ด๊ฒฐ .. ๋ฐฉ๋ฒ•์€ ์‰ฌ์šฐ๋‚˜ ์ •๋ง ์˜ˆ์ƒ์น˜๋„ ๋ชปํ•œ ๊ณณ์—์„œ ๊ณ ์—ฌ ์žˆ๋Š๋ผ ์‹œ๊ฐ„ ์˜ค๋ž˜ ๋บ๊น€ ๐Ÿ’ฆ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment ...? ๐Ÿ’ฆ ๋ฐœ์ƒ ์›์ธ ๋ฆฌ์•กํŠธ ํ”„๋ก ํŠธ์™€ ๊ด€๋ จํ•œ ๊ฐ„๋‹จ ์—๋Ÿฌ ํ•ด๊ฒฐ .. ๋ฐฉ๋ฒ•์€ ์‰ฌ์šฐ๋‚˜ ์ •๋ง ์˜ˆ์ƒ์น˜๋„ ๋ชปํ•œ ๊ณณ์—์„œ ๊ณ ์—ฌ ์žˆ๋Š๋ผ ์‹œ๊ฐ„ ์˜ค๋ž˜ ๋บ๊น€ ๐Ÿ’ฆ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment ...? ๐Ÿ’ฆ ๋ฐœ์ƒ ์›์ธ JSX ์‚ฌ์šฉ ์‹œ ํ•˜๋‚˜์˜ ํƒœ๊ทธ๋กœ ๋ฌถ์—ฌ์žˆ์–ด์•ผ ํ•˜๋Š”๋ฐ.. ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฃจํŠธ ํƒœ๊ทธ๋ฅผ ๊ฑธ์–ด๋†“๊ณ  ์• ๊ฟŽ์€ TA..
list_img
Recoil
2022.10.31
์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ Redux ๋ฅผ ๊ตฌํ˜„ํ•˜๋‹ค๊ฐ€... ๋ฌธ์ œ๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด์„œ ๋ญ”๊ฐ€ ๋‚ด๊ฐ€ ์ˆ˜์ •ํ•ด์„œ ์“ฐ๊ธฐ์—๋Š” ๊ตฌ์กฐ๊ฐ€ ๋˜๊ฒŒ ๋ณต์žกํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ฑฐ๊ธฐ์„œ๋ถ€ํ„ฐ ๋“  ์˜๋ฌธ์ ์ด ์™œ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ Redux๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š”๊ฐ€์˜€๊ณ  (๊ตฌํ˜„ ์šฉ์ด์„ฑ์€ ๋–จ์–ด์ง€๋‚˜ ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜๊ฒŒ ์ข‹๋‹ค๋˜์ง€ ๊ทธ๋Ÿฐ ์žฅ์ ์ด ์žˆ๋Š”๊ฐ€๋ฅผ ์„œ์นญํ•˜๊ธฐ ์‹œ์ž‘ํ•จ.. ), ๊ทธ ์ด์œ ๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๋“ค์ด Redux๋ฅผ ์‚ฌ์šฉํ•˜๋‹ˆ ๋‹น์—ฐํžˆ ๊ธฐ์ˆ ์„ ์Šต๋“ํ•˜๋Š” ์ž…์žฅ์—์„œ๋Š” '์‚ฌ์šฉ์ž๋“ค์ด ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ = ์ข‹์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜น์€ ๋ฏฟ์„๋งŒํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ'๋ผ๋Š” ์ƒ๊ฐ์„ ํ•˜๊ฒŒ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ธ ๋“ฏํ•˜๋‹ค. Redux๋Š” ๋ณด์ผ๋Ÿฌ ํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๋ฅผ ๋งŽ์ด ์ž‘์„ฑํ•ด์•ผํ•˜๋Š” ์•„์ฃผ ํฐ ๋‹จ์ ์ด ์žˆ๋Š”๋ฐ ํ•„์š”์— ๋”ฐ๋ผ Redux๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, ์„œ๋น„์Šค ์‚ฌ์šฉ๋Ÿ‰์ด ๊ทธ๋ ‡๊ฒŒ ๊ฑฐ๋Œ€ํ•˜์ง€ ์•Š์€ ํ”„๋กœ๊ทธ..
[JavaScript] '==' ์™€ '===' ์—ฐ์‚ฐ์ž ์ฐจ์ด
2022.10.07
์šฐ์„  JavaScript๋Š” ํƒ€์ž… ๋ณ€ํ™˜์— ๋Œ€ํ•ด ์œ ์—ฐํ•˜๊ฒŒ ๋™์ž‘ํ•œ๋‹ค. 1. "==" ์—ฐ์‚ฐ์ž == ์—ฐ์‚ฐ์ž์˜ ๊ฒฝ์šฐ, ๋‘ ํ”ผ ์—ฐ์‚ฐ์ž์˜ ๊ฐ’(value)๊ฐ€ ๋‹ค๋ฅผ ๊ฒฝ์šฐ ์ผ๋ถ€ ํ”ผ ์—ฐ์‚ฐ์ž์˜ ํƒ€์ž…(type)์„ ๋ณ€ํ™˜ํ•˜์—ฌ ๊ฐ’์„ ๋น„๊ต. : ํƒ€์ž…์„ ๋น„๊ตํ•˜์ง€ ์•Š๋Š”๋‹ค. 10 == 10//true 10 == '10'//true true == 1//true true == '1'//true null == undefined//true 2. "===" ์—ฐ์‚ฐ์ž === ์—ฐ์‚ฐ์ž์˜ ๊ฒฝ์šฐ ํƒ€์ž…์„ ๋ณ€ํ™˜ํ•˜์ง€ ์•Š๊ณ  ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค. : ํƒ€์ž…๊ณผ ๊ฐ’์„ ๋ชจ๋‘ ๋น„๊ตํ•œ๋‹ค. 10 === 10//true 10 === '10'//false true === 1//false true === 'true'//false null === undefined//false NaN === N..
list_img
[๊ฐœ๋ฐœ๋„๊ตฌ] Redux dev tools
2022.09.28
๋ฆฌ์•กํŠธ๋กœ ์›น์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜๋ฉด, Redux dev tool์„ ์„ค์น˜ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ฒŒ์‹œ๊ธ€์— ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ Redux์— ๋Œ€ํ•œ ๊ฐœ๋…๋ถ€ํ„ฐ ์งš๊ณ  ๊ฐ€๋„๋ก ํ•˜๊ฒ ๋‹ค. โœจ Redux(๋ฆฌ๋•์Šค๋ž€)? JavaScript(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ) ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋ฉฐ, ๋ณธ์งˆ์€ Node.js ๋ชจ๋“ˆ์ด๋‹ค. โœจ Redux์˜ 3๊ฐ€์ง€ ์›์น™ 1. Single Source of Truth - ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋Š” ํ•ญ์ƒ ๊ฐ™์€ ๊ณณ์—์„œ ๊ฐ€์ง€๊ณ  ์˜จ๋‹ค. ์ฆ‰, ์Šคํ† ์–ด๋ผ๋Š” ํ•˜๋‚˜๋ฟ์ธ ๋ฐ์ดํ„ฐ ๊ณต๊ฐ„์ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ. 2. State is read-only - ๋ฆฌ์•กํŠธ์—์„œ๋Š” setState ๋ฉ”์†Œ๋“œ๋ฅผ ํ™œ์šฉํ•ด์•ผ๋งŒ ์ƒํƒœ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅ. - ๊ฐ™์€ ๋งฅ๋ฝ์œผ๋กœ, ๋ฆฌ๋•์Šค์—์„œ๋„ ์•ก์…˜(action) ์ด๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด์„œ๋งŒ ์ƒํƒœ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅ. 3. Changes are made with pu..
list_img
Front-End์˜ ์ƒํƒœ ๊ด€๋ฆฌ (State Management)
2022.09.26
์ƒํƒœ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด ํ”„๋ก ํŠธ์—”๋“œ ์—ญ๋Ÿ‰์˜ ํ•ต์‹ฌ์ด๋ผ๋Š”๋ฐ.. ์—ฌ๊ธฐ์„œ ์ž์ฃผ ๋‚˜์˜ค๋Š” ์šฉ์–ด์ธ '์ƒํƒœ ๊ด€๋ฆฌ'๋Š” ๋ฌด์—‡์ธ๊ฐ€? Front-End ์—์„œ์˜ '์ƒํƒœ๊ด€๋ฆฌ'๋ž€? 1. ๋ฐ์ดํ„ฐ๋ฅผ ์„ค๊ณ„๋œ UI/UX์— ๋งž๊ฒŒ ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ์ผ์ด๋ฉฐ, 2. ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์ „๋‹ฌ๋˜๋Š” client์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๋ณ€ํ™”ํ•˜๋Š” ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ผ. ์ƒํƒœ๊ด€๋ฆฌ ๋ฐฉ๋ฒ• 1. ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ์žฅ - React, Vue, Svelte ๋“ฑ์˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ์žฅ - ์•ต๊ทค๋Ÿฌ์˜ ๋“ฑ์žฅ์œผ๋กœ ์ƒํƒœ๋Š” ๊ณผ๊ฑฐ์˜ DOM์—์„œ ํƒˆ์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. front-end ๊ฐœ๋ฐœ์ž๋Š” DOM์ด ์•„๋‹Œ JavaScript์—์„œ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ฆ‰, DOM์— ์ ‘๊ทผํ•˜๋Š” ๋กœ์ง์ด ํ•„์š”์—†์–ด์ง€๊ฒŒ ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ฑฐ๊ธฐ์—๋‹ค ํ•„์š”ํ•œ ์ƒํƒœ๋“ค์„ controler์— ๋ชจ์•„์„œ ๊ด€๋ฆฌํ•˜..
[Javascript] Generater ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ์™€ Iterable Obj ์ดํ„ฐ๋Ÿฌ๋ธ” ๊ฐ์ฒด
2022.09.26
์ผ๋ฐ˜ ํ•จ์ˆ˜๋Š” ํ•˜๋‚˜์˜ ๊ฐ’(ํ˜น์€ return ๊ฐ’์ด ์—†์„ ์ˆ˜๋„ ์žˆ์Œ)๋งŒ์„ ๋ฐ˜ํ™˜. but. ์ œ๋„ˆ๋ ˆ์ดํ„ฐ(generator)๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ํ•„์š”์— ๋”ฐ๋ผ ํ•˜๋‚˜์”ฉ ๋ฐ˜ํ™˜(yield)ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. generator๊ณผ iterable ๊ฐ์ฒด๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ์†์‰ฝ๊ฒŒ data stream์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•จ. * ์ดํ„ฐ๋Ÿฌ๋ธ”(iterable) - ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ(iterable, ์ดํ„ฐ๋Ÿฌ๋ธ”) ๊ฐ์ฒด๋Š” ๋ฐฐ์—ด์„ ์ผ๋ฐ˜ํ™”ํ•œ ๊ฐ์ฒด. ์ดํ„ฐ๋Ÿฌ๋ธ”์ด๋ผ๋Š” ๊ฐœ๋…์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ๊ฐ์ฒด์—๋“  for..of ๋ฐ˜๋ณต๋ฌธ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. - ๋ฐฐ์—ด์ด ๋Œ€ํ‘œ์ ์ธ ์ดํ„ฐ๋Ÿฌ๋ธ”์ž„. ๋ฐฐ์—ด ์™ธ์—๋„ ๋‹ค์ˆ˜์˜ ๋‚ด์žฅ ๊ฐ์ฒด์˜ ๋ฐ˜๋ณต๋„ ๊ฐ€๋Šฅ. [ ์ดํ„ฐ๋ ˆ์ดํ„ฐ iterator : obj[Sysbol.iterator]์˜ ๊ฒฐ๊ณผ. ์ด์–ด์ง€๋Š” ๋ฐ˜๋ณต ๊ณผ์ •์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ] ** ์ดํ„ฐ๋Ÿฌ๋ธ”..
list_img
[JavaScript] Optional Changing (?.)
2022.09.23
๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ ?. ๋ผ๋Š” ์ฒจ ๋ณด๋Š” ๋ฌธ๋ฒ•์ด ๋‚˜์™€์„œ ๊ฒ€์ƒ‰ํ•˜๋ ค๊ณ  ํ–ˆ๋”๋‹ˆ ?. ํ‚ค์›Œ๋“œ๋Š” ๊ฒ€์ƒ‰์ด ์•ˆ๋จ.. ๊ทธ๋ž˜์„œ ๋” ์ฐพ์•„๋ณด๋‹ˆ ์ด๊ฑธ Optional Changing์ด๋ผ๊ณ  ํ•œ๋‹ค๋”๋ผ ~ ์ฐธ๊ณ ๋กœ ์ด ๋ฌธ๋ฒ•์€ javascript.info ์— ๊ฒ€์ƒ‰ํ•˜๋ฉด ์ตœ๊ทผ์— ์ถ”๊ฐ€๋œ ๋ฌธ๋ฒ•์ด๋ผ๊ณ  ๋œฐ ์ •๋„์ž„ ์ฒ˜์Œ ๋ณด๋Š”๊ฒŒ ใ…‡ใ…‡ ๋‹น์—ฐํ•จ ์˜ต์…”๋„ ์ฒด์ด๋‹(optional Chaining) ์ธ ?. ์„ ์‚ฌ์šฉํ•˜๋ฉด, ํ”„๋กœํผํ‹ฐ๊ฐ€ ์—†๋Š” ์ค‘์ฒฉ ๊ฐ์ฒด๋ฅผ ์—๋Ÿฌ ์—†์ด ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๋ฐฐ๊ฒฝ) ์–ด๋–ค ํŽ˜์ด์ง€์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์š”์†Œ์— ์ ‘๊ทผํ•˜์—ฌ ์š”์†Œ์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. // querySelecter(...) ํ˜ธ์ถœ ๊ฒฐ๊ณผ๊ฐ€ null์ธ ๊ฒฝ์šฐ ์—๋Ÿฌ ๋ฐœ์ƒ let html = document.querySelector('.my-element').innerHT..
list_img
[VSCode/React] ERROR in ./node_modules/history/index.js
2022.09.19
Module not found Error: Can't resolve 'history' in @type/history ๋ผ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•ด๋ณด๋„๋ก ํ•˜์ž. 1๋ฒˆ. VSCode ๊ฐ™์€ ๊ฒฝ์šฐ ๋‹ค์ค‘ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋ผ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์œ ํ˜• ์ •๋ณด๋ฅผ typescipt์— ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค๊ณ  ํ•จ. ๊ณ ๋กœ history ๊ฐ™์€ ๊ธฐ๋Šฅ์€ ํฌํ•จ์ด ์•ˆ๋˜์–ด์„œ ๋”ฐ๋กœ ์„ค์น˜ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ ๊ฐ™์Œ. = ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋Ÿฐ ์–ธ์–ด๋ฅผ ์“ฐ๊ฒ ๋‹ค ~~ ๋ผ๋Š” ์ •๋ณด๋ฅผ ๋„˜๊ฒจ์ฃผ๊ณ  ์ด๋Ÿฐ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ด์š” ํ•˜๋Š” ์ผ์ข…์˜ ๊ณผ์ • powershell ์— npm install --save history npm install react-router-dom --save ๋ฅผ ์ž…๋ ฅํ•ด์„œ ๋‘๊ฐœ๋ฅผ ๊น”์•„์คŒ.. ๋‚˜๋Š” ๋‘๊ฐœ ๋‹ค ๊น”์•˜์ง€๋งŒ ๊ณ„์† ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ฐœ์ƒ.. ํ•˜์ง€๋งŒ ๋ญ”๊ฐ€ ..
list_img
[VSCode/React] RFCE ? 2
2022.09.16
RFCE ๋Š” React Functional Component Export์˜ ์•ฝ์ž๋กœ visual studio code ๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ๋นˆ js ํŒŒ์ผ ์•ˆ์—์„œ rfce ๋ฅผ ์น˜๊ณ  tab์„ ๋ˆ„๋ฅด๋ฉด ๊ธฐ๋ณธ ๊ป๋ฐ๊ธฐ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ฝ”๋“œ๋“ค์ด ๋˜๋กฑ~! ํ•˜๊ณ  ์ƒ๊ธด๋‹ค. ์‚ฌ์šฉ๋ฐฉ๋ฒ• 1. VSCode ์—์„œ ES7+ React/Redux/React-Native snippets ์„ค์น˜ํ•ด์ฃผ์ž. https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets ES7+ React/Redux/React-Native snippets - Visual Studio Marketplace Extension for Visual Studio Code - Extensions for..