๐ ๋ฆฌ์กํธ ๊ณต์๋ฌธ์์ ๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ์ ์ฐธ๊ณ ํ์ฌ ์์ฑํ ๊ธ์ ๋๋ค.
์ปดํฌ๋ํธ ์์ฑ์ ์ค์ ํ ๋ ์ฌ์ฉํ๋ ์์๋ก, ๊ฐ๋จํ ๋งํ์๋ฉด ์ปดํฌ๋ํธ์์ ์ปดํฌ๋ํธ๋ก ์ ๋ฌํ๋ ๋ฐ์ดํฐ ์ด๋ค.
์์ํจ์ โ ์ ๋ ฅ๊ฐ์ ๋ฐ๊พธ๋ ค ํ์ง ์๊ณ ํญ์ ๋์ผํ ์ ๋ ฅ๊ฐ์ ๋ํด ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ
function sum(a, b) {
return a + b;
}
์์ํจ์ โย โ ์์ ์ ์ ๋ ฅ๊ฐ์ ๋ณ๊ฒฝํ๊ธฐ ๋๋ฌธ
function withdraw(account, amount) {
account.total -= amount;
}
state๋ props์ ์ ์ฌํ์ง๋ง ์ปดํฌ๋ํธ ๋ด๋ถ์์ ๋ฐ๋์ ์๋ ๊ฐ์ ์๋ฏธํฉ๋๋ค.
State
๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ์ํ ์ // Wrong
this.state.comment = 'React';
// Correct
this.setState({comment: 'React'});
// Wrong
this.setState({
count: this.state.count + this.props.increment,
});
// Correct
this.setState((state, props) => ({
counter: state.count + props.increment
}));
๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ์ฌ๋ณธ์ ๋ง๋ค๊ณ ๊ทธ ์ฌ๋ณธ์ ๊ฐ์ ์ ๋ฐ์ดํธ ํ ํ, ๊ทธ ์ฌ๋ณธ์ ์ํ๋ฅผ setState๋ฅผ ํตํด ์ ๋ฐ์ดํธ ํ๋ค.
๊ฐ์ฒด์ ๋ํด ์ฌ๋ณธ์ ๋ง๋ค๋๋ spread ์ฐ์ฐ์๋ผ ๋ถ๋ฆฌ๋ ...
์ ์ฌ์ฉํ๊ณ , ๋ฐฐ์ด์ ๋ํ ์ฌ๋ณธ์ ๋ง๋ค๋๋ ๋ฐฐ์ด์ ๋ด์ฅํจ์๋ค์ ํ์ฉํ๋ค.
state
์ย props
์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ?
props
์state
๋ ๋ชจ๋ ๋ ๋๋ง ๊ฒฐ๊ณผ๋ฌผ์ ์ํฅ์ ์ฃผ๋ ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์์ต๋๋ค.props
๋ (ํจ์ ๋งค๊ฐ๋ณ์์ฒ๋ผ) ์ปดํฌ๋ํธ์ ์ ๋ฌ๋๋ ๋ฐ๋ฉดยstate
๋ (ํจ์ ๋ด์ ์ ์ธ๋ ๋ณ์์ฒ๋ผ) ์ปดํฌ๋ํธย ์์์ย ๊ด๋ฆฌ๋ฉ๋๋ค. ๋ํprops
๋ ์ฝ๊ธฐ์ ์ฉ์ด๋ฉฐ,state
๋ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.