반응형
이벤트
합성 이벤트 (SyntheticEvent)
브라우저마다 이벤트 이름부터 시작해서 이벤트 종류나 이벤트가 처리되는 방식이 다릅니다. 이를 동일하게 처리하기 위해 React 는 Synthetic 이벤트로 브라우저마다 다른 Native 이벤트를 묶어서 처리합니다. 따라서 React 개발자는 브라우저마다 다른 Native 이벤트를 신경쓰지 않고, React 가 제공하는 이벤트만 신경쓰면 됩니다.f
React 이벤트는 합성 이벤트라서, false 를 반환하더라도 이벤트 전파가 멈추지 않습니다. 반드시 e.stopPropagation()
또는 e.preventDefault()
를 호출해야 합니다.
이벤트 등록하기
React JSX 에서 이벤트를 등록할 때 조심해야 하는건 일반적인 HTML에서 이벤트를 등록하는 방식으로 등록하면, 등록하는 순간 함수가 실행되버리는 문제가 있습니다. 따라서 아래와 같이 등록해야 합니다.
<button onClick={activateLasers}>
Activate Lasers
</button>
또는 아래와 같이 등록할 수도 있습니다.
<button onClick={() => activateLasers() }>
Activate Lasers
</button>
이벤트 변수받기
<button onClick={(e) => activateLasers(e) }>
Activate Lasers
</button>
Form 에서 이벤트 처리하기
Form 데이터가 변경될 때마다 입력 값이 유효한지 확인하는 경우 아래의 코드를 참고하시면 됩니다.
<form onSubmit={this.handleSubmit}>
<label>
Name:
<input type="text" value={this.state.value} onChange={this.handleChange} />
</label>
<input type="submit" value="Submit" />
</form>
반응형
'Develop > Frontend 가이드' 카테고리의 다른 글
[FE] 브라우저 렌더링 Browser rendering - 1단계 파싱 'parse' (0) | 2021.03.27 |
---|---|
[FE] 브라우저 렌더링 Browser rendering - 0단계 소개 (2) | 2021.03.26 |
[React] 조건부 렌더링 패턴 Conditional Rendering Pattern (2) | 2021.01.10 |
[React] Lifecycle 이벤트 (0) | 2020.07.12 |
[React] Stateful 컴포넌트보다 Stateless 컴포넌트로 작성하자 (0) | 2020.07.12 |
꾸준히 노력하는 개발자 "김예건" 입니다.