<star />
์ด๋ฒคํธ ํธ๋ค๋ง ๋ณธ๋ฌธ
์ด๋ฒคํธ๊ฐ ๋ญ๊ฐ์?
- ํํ๋ค ์ด๋ฒคํธ๋ผ๊ณ ํ๋ฉด ์ฐ์ธ...์๊ฒ ํด ์ฃผ๋ ๊น์ง ํํฐ ๊ฐ์ ๊ฑธ ๋ ์ฌ๋ฆด ์๋ ์์ด์. (์ ์ด๋ฒคํธ ์ ๋นํด ๋ดค์ง๋ง์... ๐ฉ)
์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ์์์ ์ด๋ฒคํธ๋ ์ฌ๊ฑด ์ด๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. (a.k.a. ์ฌ๊ฑด์ ์งํ์ )
์๋ฅผ ๋ค๋ฉด ์ฌ์ฉ์๊ฐ ๋ฒํผ์ ํด๋ฆญํ๋ ์ฌ๊ฑด๋ ํ๋์ ์ด๋ฒคํธ๋ก ๋ณด๋ ๊ฑฐ์ฃต. (ํด๋ฆญ ์ด๋ฒคํธ)
์น์๋ ๊ต์ฅํ ๋ค์ํ ์ด๋ฒคํธ๋ค์ด ์์ต๋๋ค. ^-^
<button onclick="activate()">๋ฒํผ์ด๋ฌด๋๋ค.</button>
์ ์ฝ๋๋ DOM ์์ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ์์ ์ฝ๋์์.
๋ฒํผ์ด ๋๋ฆฌ๋ฉด activate() ๋ผ๋ ํจ์๋ฅผ ํธ์ถํ๋๊ฒ์ง์...
DOM ์์๋ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ํจ์๋ฅผ onclick ์ ํตํด์ ์ ๋ฌํ๋ฌด๋๋ค.
<button onClick={activate}>๋ฒํผ์ด๋ฌด๋๋ค</button>
๋ฆฌ์กํธ์์์ ์ด๋ฒคํธ ์ฒ๋ฆฌ๋ ์ข ๋ค๋ฆ ๋๋ค.
์์ ์ฝ๋๋ฅผ ๋ณด๋ฉด ์ด๋ฒคํธ์ ์ด๋ฆ์ธ onclick์ด onClick ์ผ๋ก ์นด๋ฉ ํ๊ธฐ๋ฒ์ด ์ ์ฉ๋์์ด์.
๋ ๋ฒ์งธ ๋ค๋ฅธ ์ ์, DOM ์์๋ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ํจ์๋ฅผ ๋ฌธ์์ด๋ก ์ ๋ฌํ์ง๋ง ๋ฆฌ์กํธ์์๋ ํจ์ ๊ทธ๋๋ก ์ ๋ฌํ๋ค๋ ์ ์ด ๋ค๋ฅด์ง์~
์ด๋ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ํด๋น ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ํจ์๊ฐ ์๋๋ฐ, ์ด๊ฒ์ ์ด๋ฒคํธ ํธ๋ค๋ฌ (Event Handler) ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
๋๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ๊ณ์ ๋ฃ๊ณ ์๋๋ค๋ ์๋ฏธ๋ก ์ด๋ฒคํธ ๋ฆฌ์ค๋ (Event Listener) ๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํจ.
function Toggle(props) {
const [isToggleOn, setIsToggleOn] = useState(true);
// ๋ฐฉ๋ฒ 1. ํจ์ ์์ ํจ์๋ก ์ ์
function handleClick() {
setIsToggleOn((isToggleOn) => !isToggleOn);
}
// ๋ฐฉ๋ฒ 2. arrow function ์ ์ฌ์ฉํ์ฌ ์ ์
const handleClick = () => {
setIsToggleOn((isToggleOn) => !isToggleOn);
}
return (
<button onClick={handleClick}>
{isToggleOn ? "์ผ์ง" : "๊บผ์ง" }
</button>
)
}
** ์นด๋ฉ ํ๊ธฐ๋ฒ (Camel case) ์ด๋? **
> ์นด๋ฉ ํ๊ธฐ๋ฒ์ ์ฌ๋ง์ ์๋ ๋ํ์ ๋ฑ ๋ชจ์์ ๋ณด๊ณ ์ด๋ฆ์ ์ง์ ๊ฒ์ธ๋ฐ, ๋ํ์ ๋ฑ์ ๋ณด๋ฉด ๊ตด๊ณก์ง ํน์ด ์์ด์ ์ค๋ฅด๋ฝ ๋ด๋ฆฌ๋ฝํ๋ ํํ๋ฅผ ๋ณผ ์ ์์. ์ด์ฒ๋ผ ์นด๋ฉ ํ๊ธฐ๋ฒ์ ์ฒซ ๊ธ์๋ ์๋ฌธ์๋ก ์์ํ๋, ์ค๊ฐ์ ๋์ค๋ ์๋ก์ด ๋จ์ด์ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ์ฌ์ฉํ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ธ์์ ํฌ๊ธฐ๊ฐ ๋ณํ๋ ๊ฒ ๋ง์น ๋ํ์ ๋ฑ๊ณผ ๊ฐ๋ค๊ณ ํด์ ์นด๋ฉ ํ๊ธฐ๋ฒ์ผ๋ก ์ด๋ฆ์ด ์ง์ด์ก์ต๋๋ค!
Arguments ์ ๋ฌํ๊ธฐ
> Arguments ๋ ์ฃผ์ฅ, ๋ ผ์, ๋ง๋คํผ์ด๋ผ๋ ๋ป์ ๊ฐ์ง๊ณ ์์.
> ์ฌ๊ธฐ์์๋ ํจ์์ ์ฃผ์ฅํ ๋ด์ฉ์ด๋ผ๊ณ ์ดํดํ๋ฉด ๋จ.
> ํจ์์ ์ ๋ฌํ ๋ฐ์ดํฐ๋ฅผ Arguments ๋ผ๊ณ ํ๋ฉฐ, ๊ฐ์ ์๋ฏธ๋ก ํ๋ผ๋ฏธํฐ ๋ผ๋ ์ฉ์ด๋ ๋ง์ด ์ฌ์ฉํจ.
> ์ฐ๋ฆฌ ๋ง๋ก๋ ๋งค๊ฐ๋ณ์ ๋ผ๊ณ ๋ถ๋ฆ!
ํจ์ ์ปดํฌ๋ํธ์์๋ ์ด๋ฒคํธ ํธ๋ค๋ฌ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ ๋ ์๋์ ๊ฐ์ด ํ๋ฉด ๋จ.
์ฐธ๊ณ ๋ก ๋งค๊ฐ๋ณ์์ ์์๋ ์ํ๋ ๋๋ก ๋ณ๊ฒฝํด๋ ์๊ด ์์ด,.
function MyBtn (props) {
const handleDelete = (id, event) => {
console.log(id, event.target);
};
return (
<button onClick={(event) => handleDelete(1, evenrt)}>์ญ์ ํ๊ธฐ</button>
)
}
'React ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฆฌ์คํธ์ ํค (0) | 2022.11.29 |
---|---|
์กฐ๊ฑด๋ถ ๋ ๋๋ง (0) | 2022.11.28 |
State์ ์๋ช ์ฃผ๊ธฐ (0) | 2022.11.24 |
Hook (0) | 2022.11.23 |
์ปดํฌ๋ํธ (0) | 2022.11.23 |