react event handling

Posted by : on

Category : react


1. 태그안에 바로 정의

const Button=({text,color,children})=>{
    return (
        <button
         onClick={()=>{
            console.log(text)
         }}
         style=>
            {text} - {color.toUpperCase()}
            {children}
        </button>
    )
}

Button.defaultProps={color:"black"}
export default Button;

위에처럼 태그 안에 바로 정의 해도 되고 아래처럼 이벤트 로직이 길면 빼서해도 된다.

2. 함수로 빼서 정의

const Button=({text,color,children})=>{
    const onClickButton=()=>{
        console.log(text);
    }
    
    return (
        <button
         onClick={onClickButton}
         style=>
            {text} - {color.toUpperCase()}
            {children}
        </button>
    )
}

Button.defaultProps={color:"black"}
export default Button;

함수 이름만 전달해야지 ()이거 붙여서 하면 안된다.


이벤트 객체

리액트에서는 모든 이벤트핸들러 함수에 이벤트 객체라는 것을 제공한다.

const onClickButton=(e)=>{
        console.log(e);
    }

위에처럼 e라는 매개변수를 받아서 출력해보면 Pasted image 20240505215910.png 이런식으로 이벤트 객체가 반환되어있다.

이것이 바로 합성 이벤트 객체이다. 브라우저가 너무 많아서 동작이 조금씩 다 다르다. 크롬,엣지,파이어 폭스 등등. 이벤트 객체들도 브라우저 마다 조금씩 다르기 때문에 브라우저 별로 스펙이달라서 발생하는 문제를

cross browsing lssue 라고 한다.

여러 브라우저들의 규격을 통합해서 만들어 놓은 것이

합성이벤트라고 하는 것이다.


About 유재석
유재석

개발자 유재석 입니다. Web Developer.

Email : jaeseok9405@gmail.com

Website : https://github.com/yoo94