<button onClick={activateLasers}> Activate Lasers
</button>
React에선 기본 동작을 방지하기 위해 preventDefault를 호출해야 합니다.
function Form() {
function handleSubmit(e) {
e.preventDefault();
console.log('You clicked submit.');
}
return (
<form onSubmit={handleSubmit}>
<button type="submit">Submit</button>
</form>
);
}
Capturing -> Bubbling 순서로 작동된다.
Capturing : 부모 -> 자식 순서
Bubbling : 자식 -> 부모 순서
조금 헷갈릴 수 있어서 console.log로 찍어보았다.
아래 순서대로 로그에 찍힌다.
handleButtonClick
handleClickCapture
handleClickCapture2
handleButtonClick
handleClickBubble
import React from 'react'
export default function Event() {
const handleButtonClick = () => {
console.log('handleButtonClick')
}
const handleClickCapture = () => {
console.log('handleClickCapture')
}
const handleClickCapture2 = () => {
console.log('handleClickCapture2')
}
const handleClickBubble = () => {
console.log('handleClickBubble')
}
return (
<div onClickCapture={handleClickCapture}>
<div onClickCapture={handleClickCapture2} onClick={handleClickBubble}>
<button onClick={handleButtonClick}>Button</button>
</div>
</div>
)
}