티스토리 뷰
코드를 작성하던 중 갑자기 onClick 처리의 늪에 빠져버렸다. 그래서 알아보는 시간
onClick에 화살표 함수를 사용해야하는 이유.
하단과 같은 형식으로 onClick 이후 화살표함수 없이 함수를 소환하게 된다면 button이 로드 되며, click 여부와 상관없이 해당 함수가 실행된다.
// 잘못된 방법
<button onClick={함수명()}>버튼</button>
따라서 onClick 사용의 올바른 방법은 다음과 같다
// 올바른 방법
<button onClick={() => {함수명()}}>버튼</button>
<button onClick={함수명}>버튼</button>
onClick으로 변수 넘겨주기
구글에서 보던 중 생각보다 이 부분에 대한 질문을 많이 발견하였다. 결론적으로 말하면 onClick으로 변수를 넘겨주려면 화살표 함수를 사용하여 함수 호출 시 넘겨주어야 정상 동작한다.
// 잘못된 방법
<button onClick={함수명('인자')}>버튼</button>
// 올바른 방법
<button onClick={() => {함수명('인자')}}>버튼</button>
// event 넘겨주기
<button onClick={(e) => {함수명(e)}}>버튼</button>
onClick의 this값
화살표 함수를 사용할 때에는 항상 this가 무엇을 향하고 있는지가 중요하다. 이때의 this는 전역객체를 향한다.
<button onClick={() => console.log(this)}>버튼</button> // window
'JavaScript > JS' 카테고리의 다른 글
lodash란 무엇인가 (es6 기본 제공 문법보다 빠른가요?) (0) | 2022.08.08 |
---|---|
js scroll을 부드럽게 만드는 방법 (+ 사파리 적용) (0) | 2022.08.02 |
history web API 종류가 이렇게나 많았다. 언제 쓰는거지? (0) | 2022.07.20 |
DOM트리가 성능에 미치는 영향과 해결방안 (0) | 2022.07.15 |
자바스크립트 ES2022 중 일부기능만 훑어보기 (0) | 2022.07.07 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- sentry
- js
- 리액트상태관리
- 프론트엔드
- BFCache
- npm
- 모바일사파리
- frontend
- 센트리모니터링
- 깃명령어
- 깃
- reacthook
- Git
- vue
- 김민태
- react
- 크롬
- 자바스크립트
- CSS
- TIL
- 리코일
- js테스트
- 프론트앤드
- javascript
- 사파리
- 리액트훅
- storybookUI
- gitRebase
- 센트리
- 리액트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함