Hello Kitty Eyes Shut
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป๊ณต๋ถ€ ๊ธฐ๋ก/๐Ÿ“Œ Frontend

[Frontend] ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น (Array Destructuring)

๋ฐ˜์‘ํ˜•

 

 

 

โœจ ๋“ค์–ด๊ฐ€๋ฉฐ

์ด์ „ ํฌ์ŠคํŒ…์—์„œ const ๋ผ๋Š” ํ‚ค์›Œ๋“œ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋Š”๋ฐ,

๋ณดํ†ต ํ”„๋ก ํŠธ์—”๋“œ ์ฝ”๋“œ๋ฅผ ์งœ๋‹ค ๋ณด๋ฉด const [..., ...] ํ˜•ํƒœ๋ฅผ ๋” ์ž์ฃผ ๋ณด๊ฒŒ ๋œ๋‹ค.

 

์–˜๋ฅผ ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น (Array Destructuring) ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค๋Š”๋ฐ,

ํŠนํžˆ useState ๋ž‘ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ ์œ„์˜ ๊ตฌ์กฐ๊ฐ€ ์ž์ฃผ ๋ณด์ด๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ์ฒ˜์Œ ๊ณต๋ถ€ํ•˜๊ธฐ ์‹œ์ž‘ํ•œ ๋‚ด ์ž…์žฅ์—์„œ๋Š”

๋ญ๊ฐ€ ๋ญ”์ง€ ๋ชจ๋ฅด๊ฒ ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ ํ•˜๋‚˜์”ฉ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

 


๐ŸŽฏ const [a, b] = useState ( ... )

๋ณดํ†ต React์—์„œ๋Š” ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ useState๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•œ๋‹ค.

const [count, setCount] = useState(0);

 

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด๊ฑฐ๋ฅผ ํ•˜๋‚˜์”ฉ ๋œฏ์–ด์„œ ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค. ๐Ÿ”

 

 


๐Ÿงฉ useState๋ž€

useState๋Š” React ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ์ƒํƒœ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

 

const [state, setState] = useState(initialValue);
  • state ๐Ÿ‘‰๐Ÿป ํ˜„์žฌ ์ƒํƒœ ๊ฐ’ (์ฝ๊ธฐ ์ „์šฉ)
  • setState ๐Ÿ‘‰๐Ÿป ์ƒํƒœ๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜ (๊ฐ’์„ ๋ฐ”๊พธ๊ณ , ํ™”๋ฉด๋„ ๋‹ค์‹œ ๊ทธ๋ ค์คŒ)

 

 


โœจ ์˜ˆ์ œ

import { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);
  
  return (
    <div>
      <p>ํ˜„์žฌ ์นด์šดํŠธ: {count}</p>
      <button onClick={() => setCount(count + 1)}>์ฆ๊ฐ€</button>
    </div>
  );
}

 

  • const [count, setCount] ๐Ÿ‘‰๐Ÿป ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น
  • useState(0) ๐Ÿ‘‰๐Ÿป count์˜ ์ดˆ๊ธฐ ๊ฐ’์€ 0
  • count ๐Ÿ‘‰๐Ÿป ํ˜„์žฌ ์ˆซ์ž ์ƒํƒœ๊ฐ’
  • setCount ๐Ÿ‘‰๐Ÿป ์ˆซ์ž ์ƒํƒœ๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜ (setCount(3) ํ•˜๋ฉด count๋Š” 3์ด ๋จ)

 

 


๐Ÿค” ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š”

useState ํ•จ์ˆ˜๊ฐ€ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค

 

const result = useState(0); 
console.log(result); 
// ๐Ÿ‘‰ [0, ƒ] => [ํ˜„์žฌ ๊ฐ’, ์—…๋ฐ์ดํŠธ ํ•จ์ˆ˜]

 

๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

const [value, setValue] = useState(0);

 

์œ„์˜ ์ฝ”๋“œ๊ฐ€ ๋ฐ”๋กœ ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์ด๋ผ๋Š” ๋ฌธ๋ฒ•์ธ๋ฐ,

์ฒซ ๋ฒˆ์งธ ๊ฐ’์€ ํ˜„์žฌ ์ƒํƒœ,

๋‘ ๋ฒˆ์งธ ๊ฐ’์€ ๊ทธ ์ƒํƒœ๋ฅผ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด์„œ ์“ฐ๋Š” ๊ฒƒ์ด๋‹ค.

 

 


๐Ÿ’ก ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ์ •๋ฆฌ

const [a, b] = [1, 2];
// a = 1
// b = 2

const [name, age] = ['์†Œ์—ฐ', '24'];
// name = "์†Œ์—ฐ"
// age = 24

 

๋งˆ์ง€๋ง‰์œผ๋กœ ํ•œ ๋ฒˆ ๋” ์ •๋ฆฌํ•˜์ž๋ฉด,

์œ„์˜ ์˜ˆ์‹œ ์ฝ”๋“œ์™€ ๊ฐ™์ด ๋ฐฐ์—ด์„ ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋กœ ๋ถ„ํ•ดํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์ด๋‹ค.

 

 


๐ŸŒŸ ๋งˆ๋ฌด๋ฆฌ ์ •๋ฆฌ

๋ฌธ๋ฒ• ์„ค๋ช…
const [x, y] = [1, 2] ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น
const [state, setState] = useState(initialValue) ์ƒํƒœ ๊ฐ’๊ณผ ๋ณ€๊ฒฝ ํ•จ์ˆ˜๋ฅผ ๋™์‹œ์— ๋ฐ›๋Š” ๋ฐฉ๋ฒ•
useState๋Š” ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•จ [ํ˜„์žฌ ๊ฐ’, ํ˜„์žฌ ๊ฐ’์„ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜] ํ˜•ํƒœ
๋ฐ˜์‘ํ˜•