์ ๊ฐ ์ฐ์ฐ์(`...`) ์ฌ์ฉ
- ์ด์ ๊ฐ์ฒด์ ์์ฑ์ ๊ทธ๋๋ก ๊ฐ์ ธ์ค๋ฉด์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ๋ฎ์ด์ฐ๋ ๋ฐฉ์์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ๋ค. (๋ถ๋ณ์ฑ ์ ์ง)
const [myObject, setMyObject] = useState({ name: 'John', age: 25 });
const updateObject = (newData) => {
setMyObject((prevObject) => ({
...prevObject,
...newData,
}));
};
console.log(updateObject({ age: 26 })); // { name: 'John', age: 26 }
Object.assign()
Object.assign(target, source1, source2, ...);
- ์๋ณธ ๊ฐ์ฒด์์ ์์ฑ์ ๋ค๋ฅธ ๊ฐ์ฒด๋ก ๋ณต์ฌํ๋ ๋ฉ์๋ ์ด๋ค.
- target์ ๋ชฉํ ๊ฐ์ฒด๋ก ์ฌ๊ธฐ์ ์์ฑ์ด ๋ณต์ฌ๋๋ค.
- source1, source2 ๋ ๋ณต์ฌ๋ ์์ค ๊ฐ์ฒด๋ค์ด๋ค.
- ๋ง์ฝ์ ์์ฑ์ด ์ด๋ฏธ ์กด์ฌํ๋ค๋ฉด, ๊ทธ ์์ฑ์ ์์ค ๊ฐ์ฒด์ ๊ฐ์ผ๋ก ๋ฎ์ด์ฐ๊ฒ ๋๋ค.
- ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
Object.assign() ์ฌ์ฉ
- Object.assign()๋ฅผ ์ฌ์ฉํด ๋น ๊ฐ์ฒด์ ์์ฑ์ ๋ณต์ฌํ์ฌ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋ณ๊ฒฝ์ ์ํํ ์ ์๋ค.
- ์ด๋ ๋ณต์ฌ๋ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์กฐ์ํ๋ฏ๋ก ์๋ณธ์ ๋ถ๋ณ์ฑ์ ์ ์ง๋์๋ค.
const [myObject, setMyObject] = useState({ name: 'John', age: 25 });
const updateObject = (newData) => {
setMyObject((prevObject) => Object.assign({}, prevObject, newData));
};
console.log(updateObject({ age: 26 })); // { name: 'John', age: 26 }
๋ฐ์ํ
'Frontend > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React | ๋ ๋๋ง ์ฃผ๊ธฐ (2) | 2023.11.29 |
---|---|
React | ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋(Lifecyle Methods) (0) | 2023.11.28 |
React | ๋ฐฐ์ด ํ์ State ์ ๋ฐ์ดํธ (1) | 2023.11.24 |
React | ๋ณ์ vs State (2) | 2023.11.23 |
React | event (์ด๋ฒคํธ) ์ ๋ํด์ (0) | 2023.11.18 |