ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

์ด์ „์— JS ๋ฌธ๋ฒ•์œผ๋กœ ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น์„ ๋ฐฐ์› ๋‹ค.

[๐Ÿฆ] JS ๋ฌธ๋ฒ• - Destructuring (๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น) (ํด๋ฆญ)

 

๋‹น์‹œ์—๋Š” ๋‹จ์ˆœํ•œ ์˜ˆ์ œ๋กœ๋งŒ ์ตํ˜”๋Š”๋ฐ ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์„œ ์ ์  ํ—ท๊ฐˆ๋ฆฌ๋˜ ์™€์ค‘์—

Context -> RTK ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์‹ค์ œ ์‚ฌ์šฉ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ์ถ”๊ฐ€๋กœ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

 


๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น์€ (๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด์—์„œ) ๋งŽ์€ ๊ฐ’๋“ค ์ค‘ ๋‚ด๊ฐ€ ํ•„์š”ํ•œ ๊ฐ’๋งŒ ๋ฝ‘์•„์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

๐Ÿ“๊ฐ์ฒด ์‚ฌ์šฉ

๊ฐ์ฒด ๋‚ด์˜ key ๊ฐ’์— ์ง‘์ค‘ํ•˜๊ธฐ!

๋‹ค์–‘ํ•œ key : value pair๊ฐ€ ์žˆ๋Š” ๊ฐ์ฒด์—์„œ ํ•„์š”ํ•œ ๊ฐ’์˜ key์™€ ๋™์ผํ•˜๊ฒŒ ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•œ๋‹ค.

๊ทธ ๋ณ€์ˆ˜๋ฅผ { } ๋‚ด์— ์ž…๋ ฅํ•˜์—ฌ "๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น ์ž…๋‹ˆ๋‹ค~" ๋ผ๊ณ  ์•Œ๋ ค์ค€๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค !

 

  • ์˜ˆ์ œ1: "๋ฉ‹์ง„์…”์ธ "๋Š” '์ƒํ’ˆ๋ช…'์ด๋ผ๋Š” ๋ณ€์ˆ˜์—, 10000์€ '๊ฐ€๊ฒฉ'์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ๋„ฃ๊ธฐ
const product = {
	์ƒํ’ˆ๋ช…: "๋ฉ‹์ง„์…”์ธ ",
	๊ฐ€๊ฒฉ: 10000,  
    // ์—ฌ๊ธฐ์„œ ์ƒํ’ˆ๋ช…, ๊ฐ€๊ฒฉ์€ key ๊ฐ’
}

const { ๊ฐ€๊ฒฉ, ์ƒํ’ˆ๋ช… } = product;
// ์—ฌ๊ธฐ์„œ ๊ฐ€๊ฒฉ, ์ƒํ’ˆ๋ช…์€ ๋ณ€์ˆ˜ !

๊ฐ์ฒด๋ฅผ ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น ํ•  ๋•Œ๋Š” key๊ฐ’์„ ์ค‘์š”ํ•˜๊ฒŒ ๋ณด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜ ์„ ์–ธ ์ˆœ์„œ๋Š” ์ƒ๊ด€์—†๋‹ค.

 

 

  • ์˜ˆ์ œ2: Context ์‚ฌ์šฉ
// messageContext.jsx

import { createContext, useState } from "react";

export const MessageContext = createContext();

export const MessageProvider = ({ children }) => {
  const [message, setMessage] = useState("");
  return (
    <MessageContext.Provider value={{ message, setMessage }}> โญ๏ธvalue์— ์ง‘์ค‘
      {children}
    </MessageContext.Provider>
  );
};


โญ๏ธ
value = {
	{ message: message, setMessage: setMessage }
};

์œ„ ์˜ˆ์ œ์—์„œ value๋งŒ ๋”ฐ๋กœ ๋นผ์„œ ๋ณด๋ฉด ์‚ฌ์‹ค ๊ฐ์ฒด ํ˜•ํƒœ์ด๋‹ค.

๊ฐ์ฒด์˜ key ๊ฐ’์ธ message์™€ setMessage๋ฅผ ๋ณ€์ˆ˜๋กœ ๋งŒ๋“ค์–ด ์ƒ๋‹จ์ฒ˜๋Ÿผ ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น์„ ํ•ด์ค€ ๊ฒƒ์ด๋‹ค.

 

 

๐Ÿ”ฅ์ค‘์š”๐Ÿ”ฅ ์ด๋ ‡๊ฒŒ ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น์œผ๋กœ ๋‹ด์•„์ค€ ๊ฐ’์€ ๋‹ค๋ฅธ ๋กœ์ง์—์„œ context ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

// DeepNestedStructure.jsx

function MessageDisplay() {
  const { message } = useContext(MessageContext); โญ๏ธ
  return (
    <MessageDisplayWrapper>
      <h3>๋ฉ”์‹œ์ง€ ํ‘œ์‹œ ์˜์—ญ</h3>
      <p>{message || "์•„์ง ๋ฉ”์‹œ์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค..."}</p>โญ๏ธโญ๏ธ
    </MessageDisplayWrapper>
  );
}


โญ๏ธ
1. useContext(MessageContext)๋Š” messageContext์˜ value ๊ฐ’์„ ๊ฐ€์ ธ์˜จ ๊ฒƒ.
=> const aa = { message: message, setMessage: setMessage }
=> const aa = { message, setMessage}   // key์™€ value๊ฐ’์ด ๊ฐ™์œผ๋ฉด ์ถ•์•ฝ ๊ฐ€๋Šฅ
=> const { message } = useContext(MessageContext);  // message ๊ฐ’๋งŒ ๋ณ€์ˆ˜์— ๋‹ด๊ธฐ


โญ๏ธโญ๏ธ
'๋ณ€์ˆ˜' message์— ๋‹ด๊ธด ๊ฐ’์„ <P> ํƒœ๊ทธ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๐Ÿ“๋ฐฐ์—ด ์‚ฌ์šฉ

๋ฐฐ์—ด์€ ๋น„๊ต์  ๊ฐ„๋‹จํ•˜๋‹ค.

๋ฐฐ์—ด์˜ ์ˆœ์„œ์— ๋งž๋Š” ๋ณ€์ˆ˜๋ฅผ ํ• ๋‹นํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น์˜ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค !

const colors = ["red", "green", "blue"];

// ์„ธ ๋ฒˆ์งธ ๊ฐ’๋งŒ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๊ธฐ
const [, , thirdColor] = colors;
console.log(thirdColor); //blue ์ถœ๋ ฅ๋จ

'Forntend > TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[NewsFeed-Day 3] supabase ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”  (1) 2025.02.15
[NewsFeed-Day 2] supabase ๊ฐ ์žก๊ธฐ  (0) 2025.02.14
TIL | 09  (0) 2025.01.24
๋ฐ˜์„ฑ...  (1) 2025.01.23
TIL | 08  (0) 2025.01.19
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2026/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ