inflearn logo
강의

講義

知識共有

React を完全にマスター: 基本概念から Lean Canvas プロジェクトまで

配列の更新 1弾

onClick 이벤트에 함수 넘길 때

67

r11s

投稿した質問数 5

0

안녕하세요 강사님. 강의 잘 듣고 있습니다.

 

배열 업데이트하기 1탄 강의 보고 있는데 궁금한 점이 있습니다.

 

강의 11:28에서 button onClick 이벤트에 onDeleteTodo 함수를 넘기는데요.

강의에서는

onClick={() => onDeleteTodo(item.id)}

이런 형식으로 넘기고 있는데

 

다른 부분에는 onClick={onDeleteTodo} 이런식으로 사용하기도 하셔서요.
(강의에서 이렇게 사용했다는게 아닙니다. 예시입니다.)

 

onClick={() => onDeleteTodo(item.id)}

onClick={onDeleteTodo}

이 두가지를 언제 어떻게 구분해서 사용해야 하는지 궁금합니다.

react

回答 1

2

gymcoding

안녕하세요!

이 두 방법의 차이점을 명확하게 설명해드리겠습니다.

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