250x250
Rainbow๐ŸŒˆCoder
My dev Note๐Ÿ“’
Rainbow๐ŸŒˆCoder
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (411)
    • ๊ณต์ง€์‚ฌํ•ญ (0)
    • Debugger (10)
      • Visual Studio Debugger (1)
      • Chrome DevTools (3)
      • Visual Studio Code Debugger (4)
      • eclipse (1)
      • intelliJ (1)
    • OOP (2)
      • OOP (2)
    • TypeScript (54)
      • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ TypeScript (54)
    • Javascript (87)
      • Javascript (45)
      • Node.js (19)
      • React (5)
      • FE ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ค์ • (3)
      • React์™€ Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ (6)
      • next.js (2)
      • pixi.js (7)
    • ๋งˆํฌ์—… (23)
      • Html & Css (23)
    • C# (80)
      • C# (12)
      • ์ด๊ฒƒ์ด C#์ด๋‹ค (68)
    • C++ (30)
      • c++ (27)
      • win api (3)
    • Unity (18)
      • Unity(๊ธฐ์ดˆ) (8)
      • Unity(C#์ค‘๊ธ‰) (5)
      • ์œ ๋‹ˆํ‹ฐ ํฌํ†ค(๋„คํŠธ์›Œํฌ) (4)
      • unity c# MyCode (1)
    • Java & Spring (29)
      • Java (11)
      • ์Šคํ”„๋ง (8)
      • Java Algorithm (9)
      • Javs Data Structures (1)
    • ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (15)
      • ์ž๋ฃŒ๊ตฌ์กฐ (5)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
    • ํ˜•์ƒ๊ด€๋ฆฌ (15)
      • Git (11)
      • ์†Œ์ŠคํŠธ๋ฆฌ (3)
    • ๊ทธ๋ž˜ํ”ฝ์Šค (7)
      • WebGl (7)
    • AWS (3)
      • aws (3)
    • ๋ฆฌ๋ˆ…์Šค (5)
      • ๋ฆฌ๋ˆ…์Šค (5)
    • ์ฑ… ๋ฆฌ๋ทฐ (13)
      • ํด๋ฆฐ์ฝ”๋“œ(์ฑ…๋ฆฌ๋ทฐ) (3)
      • ์œ ์ง€๋ณด์ˆ˜๊ฐ€๋Šฅํ•œ์ฝ”๋”ฉ์˜๊ธฐ์ˆ C#ํŽธ(์ฑ…๋ฆฌ๋ทฐ) (1)
      • ๋ฆฌํŒฉํ† ๋ง(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธํŒ) (9)
    • Server (2)
      • ๊ฒŒ์ž„ ์„œ๋ฒ„(๋„คํŠธ์›Œํฌ, ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ,OS) (2)
    • ์„ค๊ณ„, ์•„ํ‚คํ…์ณ (4)
    • ํŒŒ์ด์ฌ (5)
    • ๋””์ž์ธํŒจํ„ด (2)
    • mocha (2)
    • Jest (1)
    • Spine (1)
    • ์ธ๊ณต์ง€๋Šฅ (1)
      • ํ˜ผ์ž๊ณต๋ถ€ํ•˜๋Š”๋จธ์‹ ๋Ÿฌ๋‹+๋”ฅ๋Ÿฌ๋‹ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์ปดํฌ์ง€์…˜
  • ์œ„์ž„
  • ใ…ฃใ„ท
  • MySQL

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Rainbow๐ŸŒˆCoder

My dev Note๐Ÿ“’

[React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (1) ๋ฆฌ์•กํŠธ์˜ ์ปจ์…‰ state
Javascript/React์™€ Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ

[React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (1) ๋ฆฌ์•กํŠธ์˜ ์ปจ์…‰ state

2022. 12. 2. 21:51
728x90

React! ๋Š” ๊ฐ’์˜ ๋ณ€ํ™”์— react ๋ฐ˜์‘ํ•˜๋‹ค๋ž€ ์ปจ์…‰์— ๊ฑธ๋งž๊ฒŒ

๋ณ€์ˆ˜ ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ ๋งˆ๋‹ค getElementById~ innerText~ ์ผ์ผํžˆ ํ•ด์ฃผ๋˜๊ฑธ ํ•ด์ฃผ์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

๊ฐ’์ด ๋ณ€ํ•˜๋ฉด UI๋„ ์ž๋™์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. ->

State

state๊ฐ€ ๋ณ€ํ•˜๋ฉด UI๊ฐ€ ๋ณ€ํ•˜๊ฒŒ ํ•œ๋‹ค.

 

 

ํ„ฐ๋ฏธ๋„ ํ”„๋กœ์ ํŠธ

๋งŒ๋“ค๊ณ  ์‹ถ์€ ํด๋” ์ƒ์„ฑ mkdir react-test

cd react-test

npx create-react-app ํด๋”๋ช… ๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ๋Š” npx create-react-app rsp ๋กœ ํ•จ

์ƒ์„ฑํ•˜๋Š”๋ฐ ์‹œ๊ฐ„ ์ข€ ๊ฑธ๋ฆผ.

 

์ด๋ ‡๊ฒŒ ๋œจ๋ฉด ์„ฑ๊ณต

cd rsp

code . ํ•˜๋ฉด ๋ฐ”๋กœ ์„ธํŒ…๋œ ๋น„์ฅฌ์–ผ ์ŠคํŠœ๋””์˜ค ์ฝ”๋“œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์—ด๋ฆฐ๋‹ค. 

 

1. App.js  App.css ์ •๋ฆฌ 

App.css ํŒŒ์ผ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ๋‚ด์šฉ ์ง€์›Œ์ค€๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ์ •๋ฆฌํ•ด์ค€๋‹ค.

import logo from './logo.svg';
import './App.css';

function App() {
  return (
    <div>
    </div>
  );
}

export default App;

 

2. React hook์ธ useState ์— ๋Œ€ํ•œ ์ดํ•ด

useState๋ฅผ import ํ•ด์ค€๋‹ค

import { useState } from 'react';

์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๊ณ   react run start 

import { useState } from 'react';
import './App.css';

function App() {
	//๋ฆฌ์•กํŠธ์˜ ์ปดํฌ๋„ŒํŠธ : ๊ด€๋ จ์žˆ๋Š” html๊ณผ js๋ฅผ ํ•จ๊ป˜ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋“œ ๊ด€๋ฆฌ, ํŒŒ์ผ ๊ด€๋ฆฌ ์šฉ์ด
	//์ž๋ฐฐ์Šคํฌ๋ฆฝํŠธ ๋‹จ
	//๋ฆฌ์•กํŠธ์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” useState๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด state๋ฅผ ๋งŒ๋“ฌ
	//์ฐธ๊ณ ๋กœ, ๋ฆฌ์•กํŠธ์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ์œ ์šฉํ•œ ํ•จ์ˆ˜๋“ค์„ react hook์ด๋ผ๊ณ  ํ•˜๊ณ  ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ useState์ธ ๊ฒƒ
	//useState(0)์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ดˆ๊นƒ๊ฐ’, ๋ฐฐ์—ด ๋ฐ˜ํ™˜ [์ดˆ๊ธฐ๊ฐ’์ด ๋‹ด๊ธด state, state ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์ฃผ๋Š” ํ•จ์ˆ˜]
	const [counter, setcounter] = useState(0);
	const increase = () => {
		setcounter(counter + 1); //setcounter2 ์ด ํ•จ์ˆ˜๋งŒ์„ ์ด์šฉํ•ด์„œ counter2๊ฐ’์„ ๋ฐ”๊ฟ”์ค€๋‹ค
	}
	return (
		//html๋‹จ
		<div>
			<button onClick={increase}>{counter}</button>
		</div>
	);
}

export default App;

๋ฒ„ํŠผ

ํด๋ฆญ ์ˆ˜๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๋ฒ„ํŠผ์ด ๋ณด์ธ๋‹ค.

 

UI์— ๋ณด์—ฌ์ค˜์•ผ ํ•˜๋Š” ๊ฐ’์€ state๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•จ : ๋‹ค๋งŒ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ž‘๋™ํ•ด์„œ ๋™๊ธฐ์— ๋น„ํ•ด state๋ฐ”๋€Œ๋Š”๊ฑด ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆผ

state ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜๊ฐ€ ๋ฐ”๋กœ ์‹คํ–‰์ด ๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ํ•จ์ˆ˜๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ state ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜๋“ค์„ ๋ชจ์•„์„œ ํ•œ๋ฒˆ์— ์‹คํ–‰

๋˜ํ•œ state๋Š” ๊ทธ ์ „์˜ ๊ฐ’์„ ๊ธฐ์–ตํ•จ

์ปดํฌ๋„ŒํŠธ ์•ˆ์— ์žˆ๋Š” state๊ฐ€ ๋ฐ”๋€Œ๋ฉด UI์— ์—…๋ฐ์ดํŠธ๋œ state ๊ฐ’์ด ๋ณด์ธ๋‹ค.

์ปดํฌ๋„ŒํŠธ ์•ˆ์— ์žˆ๋Š” ์ผ๋ฐ˜ ๋ณ€์ˆ˜๋“ค์€ ์•„์˜ˆ ๋‹ค์‹œ ์ดˆ๊ธฐํ™”๋จ

 

<์ •๋ฆฌ>

* ๋ณ€์ˆ˜๋Š” re render ๋  ๋•Œ๋งˆ๋‹ค ์ดˆ๊ธฐํ™”๊ฐ€ ๋œ๋‹ค.

* state ๊ฐ’์€ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค.

 

state๋Š” const๋กœ ์„ ์–ธ


state์˜ ๊ฐ’์€ ๊ณ„์† ๋ฐ”๋€Œ๋Š”๋ฐ const๋กœ ์„ ์–ธ


function MyReact{
    function (){
        let val
        useState(inivialValue){
          val = val | inivialValue
          function setState(newValue){
              val = newValue
          }
          return [val,setState]
        }
    }
}

const [counter,setCounter]=MyReact.useState(0)

 

state๋Š” ์ผ๋ฐ˜ ๋ณ€์ˆ˜์™€ ๋‹ฌ๋ฆฌ setState ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ’์„ ๋ณ€๊ฒฝ
(
ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ๋ณ€์ˆ˜๊ฐ€ ํ•จ์ˆ˜ ์ˆ˜๋ช…์ด ๋๋‚˜๋”๋ผ๋„, ๋ณ€์ˆ˜์˜ ์ฐธ์กฐ๊ฐ€ ๊ณ„์† ๋œ๋‹ค๋ฉด ๊ทธ ๋ณ€์ˆ˜์˜ ์ˆ˜๋ช…์€ ๊ณ„์† ๋œ๋‹ค.- ํด๋กœ์ €
์ด๋ ‡๊ฒŒ ์ปดํฌ๋„ŒํŠธ๊ฐ€ render ๊ฐ€ ๋˜๋”๋ผ๋„ state๋ฅผ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ๋‹ค.)

setState๋ฅผ ์‚ฌ์šฉํ•œ ๋ณ€์ˆ˜ ๋ณ€๊ฒฝ๋งŒ ํ—ˆ๋ฝํ•˜๊ธฐ์œ„ํ•ด const๋กœ ์„ ์–ธ
(const๋กœ ์„ ์–ธํ•˜๋ฉด ๋ณ€์ˆ˜ํ˜•ํƒœ์˜ ์žฌ ํ• ๋‹น์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.)

3. ๊ฒฐ๋ก 

์›ฌ๋งŒํ•œ ๊ฐ’์€ state๋ฅผ ์“ฐ๋˜, ์ž ๊น ๊ธฐ์–ตํ•ด์•ผํ•˜๋Š” ๊ฐ’๋งŒ ๋ณ€์ˆ˜๋ฅผ ์“ด๋‹ค.

728x90

'Javascript > React์™€ Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (6) npm ๋ฆฌ์•กํŠธ ๋กœ๋”ฉ์Šคํ”ผ๋„ˆ + ์œ„์น˜ ๋„์‹œ ๊ธฐ๋ฐ˜ ๋‚ ์”จ ์•ฑ ์™„์„ฑ  (0) 2022.12.10
[React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (5) react one-way data flow + ์œ„์น˜ ๋„์‹œ ๊ธฐ๋ฐ˜ ๋‚ ์”จ ์•ฑ ๊ณ„์† making  (0) 2022.12.09
[React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (4) ์œ„์น˜ ๋„์‹œ ๊ธฐ๋ฐ˜ ๋‚ ์”จ ์•ฑ (api ์—ฐ๊ฒฐ ๊ธฐ์ดˆ์ž‘์—…, UI์ž‘์—… )  (1) 2022.12.07
[React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (3) ๋ฆฌ์•กํŠธ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ, ๋ผ์ดํ”„ ์‚ฌ์ดํด  (0) 2022.12.05
[React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (2) ๋ฆฌ์•กํŠธ ๊ฐ€์œ„๋ฐ”์œ„๋ณด ๊ฒŒ์ž„  (0) 2022.12.04
    'Javascript/React์™€ Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (5) react one-way data flow + ์œ„์น˜ ๋„์‹œ ๊ธฐ๋ฐ˜ ๋‚ ์”จ ์•ฑ ๊ณ„์† making
    • [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (4) ์œ„์น˜ ๋„์‹œ ๊ธฐ๋ฐ˜ ๋‚ ์”จ ์•ฑ (api ์—ฐ๊ฒฐ ๊ธฐ์ดˆ์ž‘์—…, UI์ž‘์—… )
    • [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (3) ๋ฆฌ์•กํŠธ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ, ๋ผ์ดํ”„ ์‚ฌ์ดํด
    • [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (2) ๋ฆฌ์•กํŠธ ๊ฐ€์œ„๋ฐ”์œ„๋ณด ๊ฒŒ์ž„
    Rainbow๐ŸŒˆCoder
    Rainbow๐ŸŒˆCoder
    ๋ชฐ๋ผ๋„ ๊ฒฐ๊ตญ์€ ์•„๋Š” ๊ฐœ๋ฐœ์ž, ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์ด ๋˜๊ธฐ ์œ„ํ•œ ๋งค์ผ์˜ ํ•œ๊ฑธ์Œ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”