๐ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ
๐ key
- Key๋ React๊ฐ ์ด๋ค ํญ๋ชฉ์ ๋ณ๊ฒฝ, ์ถ๊ฐ ๋๋ ์ญ์ ํ ์ง ์๋ณํ๋ ๊ฒ์ ๋๋๋ค.
- Key๋ ์๋ฆฌ๋จผํธ์ ์์ ์ ์ธ ๊ณ ์ ์ฑ์ ๋ถ์ฌํ๊ธฐ ์ํด ๋ฐฐ์ด ๋ด๋ถ์ ์๋ฆฌ๋จผํธ์ ์ง์ ํด์ผ ํ๋ค.
- Key๋ฅผ ์ ํํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฆฌ์คํธ์ ๋ค๋ฅธ ํญ๋ชฉ๋ค ์ฌ์ด์์ ํญ๋ชฉ์ ๊ณ ์ ํ๊ฒ ์๋ณํ ์ ์๋ ๋ฌธ์์ด์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
- ํญ๋ชฉ์ ์์๊ฐ ๋ฐ๋ ์ ์๋ ๊ฒฝ์ฐ Key ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ์ง ์๋๋ค.
- map() ํจ์ ๋ด๋ถ์ ์๋ ์๋ฆฌ๋จผํธ์ key๋ฅผ ๋ฃ์ด ์ฃผ๋ ๊ฒ์ด ์ข๋ค.
- key๋ ๋ฐฐ์ด ์์์ ํ์ ์ฌ์ด์์ ๊ณ ์ ํด์ผ ํ๊ณ , ์ ์ฒด ๋ฒ์์์ ๊ณ ์ ํ ํ์ ์๋ค.
- key๋ ํํธ๋ฅผ ์ ๊ณตํ์ง๋ง, ์ปดํฌ๋ํธ๋ก ์ ๋ฌํ์ง ์๋๋ค.
๐ ํจ์ ์ปดํฌ๋ํธ์์ ์ด๋ฒคํธ ์ฒ๋ฆฌํ๊ธฐ
function Form() {
function handleSubmit(e) {
e.preventDefault();
console.log('You clicked submit.');
}
return (
<form onSubmit={handleSubmit}>
<button type="submit">Submit</button>
</form>
);
}
- ์ผ๋ฐ HTML์์ ํผ์ ์ ์ถํ ๋ ๊ฐ์ง๊ณ ์๋ ๊ธฐ๋ณธ ๋์์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฐ๋์ preventDefault๋ฅผ ๋ช
์์ ์ผ๋ก ํธ์ถํด์ผ ํ๋ค.
- ์ฌ๊ธฐ์ e๋ ํฉ์ฑ ์ด๋ฒคํธ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
- React๋ฅผ ์ฌ์ฉํ ๋ DOM ์๋ฆฌ๋จผํธ๊ฐ ์์ฑ๋ ํ ๋ฆฌ์ค๋๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด addEventListener๋ฅผ ํธ์ถํ ํ์๊ฐ ์์ง๋ง, ์๋ฆฌ๋จผํธ๊ฐ ์ฒ์ ๋ ๋๋ง๋ ๋ ๋ฆฌ์ค๋๋ฅผ ์ ๊ณตํ๋ฉด ๋๋ค.
- ์ด๋ฒคํธ ๋ฒ๋ธ๋ง ํ์์ ๋ง์ผ๋ ค๋ฉด stopPropagation() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
๐ ํด๋์ค ์ปดํฌ๋ํธ์์ ์ด๋ฒคํธ ์ฒ๋ฆฌํ๊ธฐ
class Toggle extends React.Component {
constructor(props) {
super(props);
this.state = {isToggleOn: true};
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
this.setState(prevState => ({
isToggleOn: !prevState.isToggleOn
}));
}
render() {
return (
<button onClick={this.handleClick}>
{this.state.isToggleOn ? 'ON' : 'OFF'}
</button>
);
}
}
ReactDOM.render(
<Toggle />,
document.getElementById('root')
);
- JavaScrip์์ ํด๋์ค ๋ฉ์๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ธ๋ฉ๋์ด ์์ง ์๋ค.
- this.handleClifk์ ๋ฐ์ธ๋ฉํ์ง ์๊ณ , onClick์ ์ ๋ฌํ์๋ค๋ฉด ํจ์๊ฐ ์ค์ ํธ์ถ๋ ๋ this๋ undefined๊ฐ ๋๋ค.
- bind๋ฅผ ํธ์ถํ๋ ๊ฒ์ด ๋ถํธํ๋ค๋ฉด, ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
- ํผ๋ธ๋ฆญ ํด๋์ค ๋ฌธ๋ฒ์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด, ํด๋์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ฐฑ์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ฐ์ธ๋ฉํ ์ ์๋ค.
- ํด๋์ค ํ๋ ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ง ์๋ค๋ฉด, ์ฝ๋ฐฑ์ ํ์ดํ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
- ํ์ดํ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๋๋ง๋ ๋๋ง๋ค ๋ค๋ฅธ ์ฝ๋ฐฑ์ด ์์ฑ๋๋ ๋ฌธ์ ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์์ฑ์ ์์์ ๋ฐ์ธ๋ฉํ๊ฑฐ๋ ํด๋์ค ํ๋ ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
๐ ์ฐธ๊ณ ๋ํผ๋ฐ์ค