onClick 이벤트에 함수 넘길 때
67
投稿した質問数 5
안녕하세요 강사님. 강의 잘 듣고 있습니다.
배열 업데이트하기 1탄 강의 보고 있는데 궁금한 점이 있습니다.
강의 11:28에서 button onClick 이벤트에 onDeleteTodo 함수를 넘기는데요.
강의에서는
onClick={() => onDeleteTodo(item.id)}
이런 형식으로 넘기고 있는데
다른 부분에는 onClick={onDeleteTodo} 이런식으로 사용하기도 하셔서요.
(강의에서 이렇게 사용했다는게 아닙니다. 예시입니다.)
onClick={() => onDeleteTodo(item.id)}
onClick={onDeleteTodo}
이 두가지를 언제 어떻게 구분해서 사용해야 하는지 궁금합니다.
回答 1
2
안녕하세요!
이 두 방법의 차이점을 명확하게 설명해드리겠습니다.
1. onClick={() => onDeleteTodo(item.id)}
화살표 함수로 감싸서 전달하는 경우:
// 매개변수가 필요한 경우
<button onClick={() => onDeleteTodo(item.id)}>
삭제
</button>
언제 사용하나요?
함수에 특정 매개변수를 전달해야 할 때 (예:
item.id)
2. onClick={onDeleteTodo}
함수를 직접 전달하는 경우:
// 매개변수가 불필요하거나 event 객체만 필요한 경우
<button onClick={onDeleteTodo}>
삭제
</button>
언제 사용하나요?
매개변수가 필요 없을 때
이벤트 객체(
event)만 사용하면 될 때성능을 최적화하고 싶을 때
성능 고려사항
// ❌ 매번 새로운 함수 생성 (렌더링할 때마다)
<button onClick={() => onDeleteTodo(item.id)}>삭제</button>
// ✅ 동일한 함수 참조 유지
<button onClick={onDeleteTodo} data-id={item.id}>삭제</button>
결론 및 권장사항
매개변수가 필요하다면:
onClick={() => func(param)}사용매개변수가 불필요하다면:
onClick={func}사용
강의에서 onClick={() => onDeleteTodo(item.id)}를 사용한 이유는 각각의 todo 항목의 고유한 id를 삭제 함수에 전달해야 하기 때문입니다!
추가 궁금한 점이 있으시면 언제든 질문해주세요! 🙂
오타?
0
30
1
뭐하나 여쭤봐도 될까요?
0
70
1
안녕하세요 질문이 있습니다.
0
55
2
질문 : 삭제 버튼 아규먼트 (id)
0
50
1
Tailwind 버전 확인
0
62
1
align-items 정렬
0
50
2
vite 명령어로 프로젝트를 만들었습니다. (vscode)
0
79
1
31. 객체 업데이트 하기 - 10:15 질문
1
56
2
강의교안, 내용 인용해서 블로그 글 작성
1
80
2
이미지가 출력되지 않아요
1
74
2
강의와 만들어진 코드가 달라요
0
76
3
AI와 CSS 라이브러리의 궁합
0
95
1
린캔버스 기능 구현은 왜 못하나요.... 구현하고 싶습니다...
0
101
1
notes 없음 읽기 오류
0
72
1
Object.assign 문법
0
64
1
react-router 전혀 기능 안함
0
53
1
react-router-dom@6.25.1
0
47
1
React Router 최신 스펙
0
208
1
Immer 에서 filter, map 사용
0
54
1
vite 설치에 대해 질문있습니다.
0
76
2
라이브러리 버전 일치 이슈
0
76
1
"Enter 키 발생 시 항목 추가" 부분에서 공백이 포함되면 한 줄이 더 입력됩니다
0
49
2
TotalCounter을 작성할때
0
65
2
gitHub 레파지토리 보면
-4
118
3

