
State์๋ JavaScript์์ ์ง์ํ๋ ๋ชจ๋ ํ์ ์ ๊ฐ์ด ํ ๋น๋ ์ ์๋ค. ex) string, number, boolean, array, object ๋ฑ๋ฑ...
๊ทธ ์ค ํต์ฌ์ State ๊ฐ์ด ๋ถ๋ณ์ ์ ์งํ๋ฉด์ ์ ๋ฐ์ดํธ ๋์ด์ผ ํ๋ค๋ ์ ์ด๋ค.
๋ฐฐ์ด ํ์ State ์ ๋ฐ์ดํธ ๋ฐฉ๋ฒ์ ๋ง์ง๋ง ์ดํ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ํด ์ดํด๋ณด๋ ค๊ณ ํ๋ค.
concat() ์ฌ์ฉ
- ๋ฐฐ์ด์ ์๋ก์ด ์์๋ฅผ ์ถ๊ฐํ์ฌ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋๋ JavaScript ๋ฐฐ์ด ๋ฉ์๋ ์ค ํ๋์ด๋ค.
- ๊ธฐ์กด ๋ฐฐ์ด์ ๋ณ๊ฒฝํ์ง ์๊ณ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ๋ค. (๋ถ๋ณ์ฑ ์ ์ง)
const [myArray, setMyArray] = useState([1, 2, 3]);
const addElementConcat = (newElement) => {
setMyArray((prevArray) => prevArray.concat(newElement));
};
์ ๊ฐ์ฐ์ฐ์(`...`) ์ฌ์ฉ
- ์๋ณธ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ณต์ฌํ ํ ์๋ก์ด ์์๋ฅผ ์ถ๊ฐํ๋ค. (๋ถ๋ณ์ฑ ์ ์ง)
const [myArray, setMyArray] = useState([1, 2, 3]);
const addElementSpread = (newElement) => {
setMyArray((prevArray) => [...prevArray, newElement]);
};
push() ์ฌ์ฉ (๋น์ถ)
- ๋ฐฐ์ด์ ์๋ก์ด ์์๋ฅผ ์ถ๊ฐํ๋ JavaScript ํจ์์ด๋ค.
- ์๋ณธ ๋ฐฐ์ด์ ๋ณ๊ฒฝํ๊ณ , ๋ณ๊ฒฝ๋ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๋ฐํํ๋ค.
- ์๋ณธ ๋ฐฐ์ด์ ์ง์ ๋ณ๊ฒฝํ๊ธฐ ๋๋ฌธ์ ๋ถ๋ณ์ฑ์ ์ ์งํ์ง ๋ชปํ๋ค. -> React์์ ์ํ ์ ๋ฐ์ดํธ ์ ๊ถ์ฅ๋์ง ์๋ ๋ฐฉ๋ฒ
const [myArray, setMyArray] = useState([1, 2, 3]);
const addElementBad = (newElement) => {
const newArray = myArray;
newArray.push(newElement);
setMyArray(newArray);
};
Array.from() + push() ์ฌ์ฉ
- Array.from()์ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ์ฌ ๋ฐํํ๋ JavaScript ๋ฉ์๋ ์ด๋ค.
- Array.from()์ ์ฌ์ฉํ๋ฉด ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ถ๋ณ์ฑ์ ์ ์งํ ์ ์๋ค.
- ์ด๋ป๊ฒ ํด์๋ push()๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํํด๋ณผ ์ ์๋ค.
const [myArray, setMyArray] = useState([1, 2, 3]);
const addElementArrayFrom = (newElement) => {
const newArray = Array.from(myArray);
newArray.push(newElement);
setMyArray(newArray);
};
๋ฐ์ํ
'Frontend > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React | ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋(Lifecyle Methods) (0) | 2023.11.28 |
---|---|
React | ๊ฐ์ฒด ํ์ State ์ ๋ฐ์ดํธ (0) | 2023.11.27 |
React | ๋ณ์ vs State (2) | 2023.11.23 |
React | event (์ด๋ฒคํธ) ์ ๋ํด์ (0) | 2023.11.18 |
React | Props (์์ฑ), State (์ํ) ์ ๋ํด์ (0) | 2023.11.17 |