<star />

์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง ๋ณธ๋ฌธ

React ๐Ÿ“

์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง

๋ณ„๊น… 2022. 11. 26. 01:14
728x90

 

์ด๋ฒคํŠธ๊ฐ€ ๋ญ”๊ฐ€์š”?

- ํ”ํžˆ๋“ค ์ด๋ฒคํŠธ๋ผ๊ณ  ํ•˜๋ฉด ์—ฐ์ธ...์—๊ฒŒ ํ•ด ์ฃผ๋Š” ๊นœ์ง ํŒŒํ‹ฐ ๊ฐ™์€ ๊ฑธ ๋– ์˜ฌ๋ฆด ์ˆ˜๋„ ์žˆ์–ด์š”. (์ „ ์ด๋ฒคํŠธ ์•ˆ ๋‹นํ•ด ๋ดค์ง€๋งŒ์š”... ๐Ÿ’ฉ)

 

์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ์ด๋ฒคํŠธ๋Š” ์‚ฌ๊ฑด ์ด๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (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>
        )
}
728x90

'React ๐Ÿ“' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋ฆฌ์ŠคํŠธ์™€ ํ‚ค  (0) 2022.11.29
์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง  (0) 2022.11.28
State์™€ ์ƒ๋ช…์ฃผ๊ธฐ  (0) 2022.11.24
Hook  (0) 2022.11.23
์ปดํฌ๋„ŒํŠธ  (0) 2022.11.23
Comments