๐จ ๋ฌธ์ ์ํฉ
React์์ ํน์ ์์์ ์ด๋ฒคํธ๋ฅผ ์ฐ๊ฒฐํ๊ณ , event ๊ฐ์ฒด๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ํ์ฉํ๊ธฐ ์ํด ์์ ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํ์๋ค. ํ์ง๋ง 'event is deprecated'๋ผ๋ ์ดํดํ ์ ์๋ ์๋ฌ๊ฐ ๋ฐ์ํ์๊ณ ์ฝ๋ ์ญ์ ์คํ๋์ง ์์๋ค.
๐ก ๋ฌธ์ ํด๊ฒฐ ๋ฐ ๊ณผ์
๋ฐ๋๋ผ JS์์ ํน์ ์์์ ์ด๋ฒคํธ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ค๋ฉด ์ฐ์ ํด๋น ์์์ ํด๋นํ๋ DOM ๊ฐ์ฒด๋ฅผ DOM ํธ๋ฆฌ์์ ์ฐพ์์ผ ํ๋ค. ๊ทธ๋ฌ๊ณ ๋ ํ, ์ด ๊ฐ์ฒด์ ์ํ๋ ์ด๋ฒคํธ๋ฅผ addEventListener ํจ์๋ฅผ ํตํด ์ฐ๊ฒฐํด์ฃผ๋ฉด ๋๋ค. ํน์ ์ธ๋ผ์ธ ๋ฐฉ์์ผ๋ก ํน์ ์์์ ํด๋นํ๋ HTML ํ๊ทธ์ ์ด๋ฒคํธ ์์ฑ์ ๋ฐ๋ก ๋ถ์ฌํด์ฃผ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
React์์ ํน์ ์์์ ์ด๋ฒคํธ๋ฅผ ์ฐ๊ฒฐํด์ฃผ๋ ค๋ฉด ๋ฐ๋๋ผ JS์์์ ์ธ๋ผ์ธ ๋ฐฉ์์ฒ๋ผ JSX๋ก ๋ณํ๋ ์ฝ๋์ ํ๊ทธ์ ์์ฑ์ผ๋ก ์ด๋ฒคํธ๋ฅผ ๋ถ์ฌํด์ฃผ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค. ์ด ๋ ์์ฑ๊ฐ์ ์ค๊ดํธ ๋ด๋ถ์๋ ํ์ดํ ํจ์๋ฅผ ์ด์ฉํ ์ต๋ช ํจ์๋ฅผ ํตํด ์ด๋ฒคํธ ํจ์๋ฅผ ์์ฑํด๋ ๋๊ณ , ํน์ ํจ์์ ์ด๋ฆ๋ง ์์ฑํ๊ณ ์ธ๋ถ์์ ์ด๋ฒคํธ ํจ์๋ฅผ ๋ฐ๋ก ์ ์ํด๋ ๋๋ค.
์ด ์ค ํ์์ ๋ฐฉ์์ธ ํจ์์ ์ด๋ฆ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์๋ 2๊ฐ์ง๊ฐ ์๋๋ฐ, ์ด ๋ ์์์ ๋ฐ๋์ ์ง์ผ์ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ๋ค.
// 1.
export default function Login() {
function handleBtnClick() {
// (์๋ต)
}
return (
<button
onClick={handleBtnClick}
>
);
}
// 2.
export default function Login() {
function handleBtnClick() {
// (์๋ต)
}
return (
<button
onClick={() => handleBtnClick()}
>
);
}
๋ง์ผ ์ฌ๊ธฐ์ event ๊ฐ์ฒด๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ํ์ฉํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ๋๋ค. ์ญ์ ์์์ ๋ฐ๋์ ์ง์ผ์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ค์ํ๋ค.
// 1. ์๊น์ ๋ณ ๋ค๋ฅผ ๋ฐ ์์
export default function Login() {
function handleBtnClick(event) {
// (์๋ต)
}
return (
<button
onClick={handleBtnClick}
>
);
}
// 2. (event) => ํจ์ ์ด๋ฆ(event)
// ์ ๊ดํธ ๋ด์ ๋ชจ๋ event ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ ์์ฑํด์ผ ํ๋ค!!
export default function Login() {
function handleBtnClick() {
// (์๋ต)
}
return (
<button
onClick={(event) => handleBtnClick(event)}
>
);
}
์ฌ์ค ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ณผ์ ์ ์ ๋ง ๋จ์ํ๋ค. ์ธํฐ๋ท์์ ๋ค๋ฅธ React ์ฝ๋๋ฅผ ๋ณด๋ค๊ฐ ๋์ ์ฝ๋๋ฅผ ๋ค์ ๋ณด๊ณ '์ด? ์ฌ๊ธฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฃ์ด์ค์ผ ํ๋ ๊ฑฐ ์๋๊ฐ?'ํ๋ ๊นจ๋ฌ์์ ์ป์ด ๋ฐ๋ก ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๋ค.
๐ฌ ๋๋ ์
์ด๋ฒ์ ๋ง์ฃผํ๋ ์๋ฌ๋ ์ฌ์ค ์ ๋ง ์ฌ์ํ ๋ฌธ์ ๋ผ๋ ์๊ฐ์ด ๋ค์๋ค. ํ์ง๋ง ์ด๋ฅผ ํด๊ฒฐํ๋ ๋ฐ์ ๊ฝค๋ ์ค๋ ์๊ฐ์ด ์์๋์๋ค. ์ด ๊ธ์ ๋ณด๋ ๋๊ตฐ๊ฐ๋ '๋ญ ์ด๋ฐ ๊ฑธ ๊ฐ์ง๊ณ ..?'๋ผ๋ ์๊ฐ์ด ๋ค ์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค. ํ์ง๋ง ์ฝ๋ฉ์ ๊ณต๋ถํด ๋ณธ ์ฌ๋์ด๋ผ๋ฉด ์ฌ์ํด๋ณด์๋ ๋ฌธ์ ์ ์์ธ๋ก ์ค๋ ์๊ฐ๋์ ๋งํ ์ ์ ๊ธ๊ธํ๋ ๊ฒฝํ์ด ๋๊ตฌ๋ ํ ๋ฒ์ฏค ์์ผ๋ฆฌ๋ผ ์๊ฐํ๋ค. ์ด๋ฒ ๋ฌธ์ ๊ฐ ๋์๊ฒ ๊ทธ๋ฐ ๋ฅ์ ๋ฌธ์ ๊ฐ ์๋์์๊น ์ถ๋ค. ๋์ ์ด๋ฒ ๊ฒฝํ์ ํตํด ๊นจ๋ฌ์๋ ์ ๋ค์ ํ์คํ ํ์ตํ๊ณ , ๋ค์๋ถํด ์ด์ ๊ฐ์ ์ค์๋ฅผ ์ ์ง๋ฅด์ง ์๋๋ก ํ๋ ๊ฒ์ด ์ง๊ธ ๋์๊ฒ ๋ ์ค์ํ ๊ณผ์ ๋ผ๋ ์๊ฐ์ด ๋ ๋ค.