ํฐ์คํ ๋ฆฌ ๋ทฐ
์ด์ ์ 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 |