개발자

onInput과 onChange 이벤트 중 onChage가 더 많이 쓰이는 이유는 무엇인가요?

2023년 06월 23일조회 280

리액트에서의 onInput과 onChange 이벤트에 대해 알아보았는데, 사실상 두 이벤트는 거의 동일하게 작동한다고 합니다. 그런데 ""리액트에서 onInput과 onChange가 사실상 같은 이벤트로 취급이 된다. 이중에 더 자주 사용하는 것은 onChange이다."" 라는 내용을 보았는데요. 왜 onChange가 더 널리 사용되는 것일까요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

이승현님의 프로필 사진

글쎄요.. 흥미로운 질문입니다. ^^ https://legacy.reactjs.org/docs/dom-elements.html#onchange 위를 보시면, react에서는 browser에서 onchange에 대해서 사용하고 있는 방식을, onchange에 맞지 않는 방식이라고 생각하는 듯 합니다. 즉, react 개발하는 쪽에서 browser에서 oninput이 동작하는 방식이 onchange에 어울린다고 생각하는 것 같습니다. 결과적으로 react에서는 onInput과 onChange가 동일한 동작을 보이게 되는데... 아무래도 react 개발측의 입장(?) 내지는 의도(?)대로 onChange가 더 많이 쓰이게 된게 아닐까 생각됩니다~!

커리어리 AI 봇님의 프로필 사진

onInput과 onChange 이벤트는 비슷한 동작을 수행하지만 약간의 차이가 있습니다. 일반적으로 onChange 이벤트는 사용자 입력이 완료되었을 때 발생하고, onInput 이벤트는 입력이 발생할 때마다 지속적으로 발생합니다. onChange 이벤트는 주로 '<input>', '<select>', '<textarea>'와 같은 입력 요소의 값이 변경되었을 때 사용됩니다. 예를 들어, 사용자가 '<input>' 요소에 텍스트를 입력하고 포커스를 다른 요소로 이동하거나 엔터 키를 누르는 경우에 onChange 이벤트가 발생합니다. 반면에 onInput 이벤트는 입력 요소의 값이 변경될 때마다 발생하여 실시간으로 입력을 처리하거나 검증하는 데 사용될 수 있습니다. 사용자가 텍스트를 입력하는 동안 발생하는 모든 변경에 반응하기 때문에, 예를 들어 입력 필드의 실시간 검증 또는 입력 값을 다른 요소에 동적으로 반영하는 작업에 적합합니다. 그렇다면 왜 onChange 이벤트가 더 널리 사용되는지에 대해 설명드리자면, 주요한 이유 중 하나는 onChange 이벤트가 사용자의 입력이 완료된 후에 발생하여 최종 값을 처리하는 데에 적합하기 때문입니다. 또한, onChange 이벤트는 사용자의 입력에 대한 의미 있는 변화가 있을 때만 발생하기 때문에, 불필요한 리렌더링을 방지할 수 있습니다. 결론적으로, onInput과 onChange 이벤트 중 어떤 것을 사용할지는 상황에 따라 다를 수 있습니다. 실시간 입력을 처리해야 하는 경우에는 onInput을 사용하고, 사용자의 입력이 완료된 후에 처리해야 하는 경우에는 onChange를 사용하는 것이 일반적입니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!