제로하우스

[TIL][React] 06 Event 본문

React

[TIL][React] 06 Event

송제로투 2022. 5. 13. 17:17

Event Handling


React의 이벤트 처리 방식은 DOM의 방식과 유사하나, 몇 가지의 문법 차이가 존재한다.

  • 이벤트는 camelCase를 사용한다.
  • JSX를 사용하여 문자열이 아닌 함수로 event handler(이벤트 처리 함수)를 전달한다.
<!-- html 방식 -->
<button onclick="handleEvent()">Event</button>
// React 방식
<button onClick={handleEvent}>Event</button>

 

Event


onChange

<input>, <textarea>, <select>와 같은 form 엘리먼트에서는 사용자의 입력 값을 제어하는데, 이렇게 값이 변경될 때 발생하는 이벤트이다. onChange 이벤트가 발생하면 event.target.value를 통해 이벤트 객체에 담겨 있는 iput 값을 가져올 수 있다.

function NameForm () {
    const [name, setName] = useState("")
    const handleChange = (event) => {
        setName(event.target.value)
    }
    return (
        <div>
            <input type="text" value={name} onChange={handleChange}></input>
            <h1>{name}</h1>
        </div>
    )
}

onClick

사용자가 클릭이라는 행동을 했을 때 발생하는 이벤트이다.

function NameForm () {
    const [name, setName] = useState("")
    return (
        <div>
            <input type="text" value={name} onChange={(event) => setName(event.target.value)}></input>
            {/* 버튼 클릭 시 name을 알림창이 팝업되도록*/}
            <button onClick={() => alert(name)}>Button</button>
            <h1>{name}</h1>
        </div>
    )
}

:warning: 만약 <button onClick={alert(name)}>Button</button>과 같이 alert(name) 함수를 바로 호출하면 컴포넌트가 렌더링될 때 함수 호출 결과가 바로 적용된다. 따라서 위와 같이 이벤트에 함수 자체를 전달하도록 한다.

 

Copyright © 2022 Song_Artish

'React' 카테고리의 다른 글

[React] 문자열 줄바꿈하는 방법  (0) 2022.08.19
[TIL][React] Redux  (0) 2022.06.01
[TIL][React] 05 Data (props & state)  (0) 2022.05.13
[React] 검색기능 구현하기  (0) 2022.05.09
[TIL][React] 04 Router  (0) 2022.05.09
Comments