inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

GraphQL 완전정복 (키오스크를 만들며 배우는 풀스택 과정) - [2024 부분 리뉴얼]

categoryForm - 추가, 삭제

왜 전달인자가 있을때 화살표 함수를 쓰는게 더좋을까요.?

해결된 질문

278

roberto park

작성한 질문수 3

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

전달인자가 있을때 화살표 함수를 쓰는게 더좋을까요.?

Props 전달시 아래두개 차이는 무엇일까요?

{함수명}

{() => 함수명() }

apollo graphql mongodb svelte

답변 1

1

Indie Coder

props전달시보다는 메소드 실행을 예로 설명드리는 것이 좋을 것 같습니다.

다음과 같은 샘플 코드가 있다고 가정하겠습니다.

반복 블록을 이용해 lists 만큼 버튼이 생성되고

각각의 값을 할당받는 목록이 있다고 했을 때

handleClick 메소드를 화살표 함수 형태로 실행하면

일반적으로 원하는 결과 즉 클릭 했을 때 이벤트가 발생하고 하나의 값이 alert에 나타나게 됩니다 .


<script>
  let lists = [1,2,3,4,5]
	
  function handleClick(v) {
    alert(`value = ${v}`)
  }
</script>

{#each lists as value }
  <button class="btn" on:click={() => handleClick(value)}>
    Click me {value}
  </button>
{/each}

<style>
.btn {
  display: block;
}
</style>

하지만 다음과 같이 그냥 일반 함수 호출로 하고 실행시켜 보면

그냥 앱이 실행될 때 handleClick 이벤트가 호출되게 됩니다.

<script>
  let lists = [1,2,3,4,5]
	
  function handleClick(v) {
    alert(`value = ${v}`)
  }
</script>

{#each lists as value }
  <button class="btn" on:click={handleClick(value)}>
    Click me {value}
  </button>
{/each}

<style>
.btn {
  display: block;
}
</style>

따라서 이 두가지 케이스는 용도가 다릅니다.

화살표 함수를 이용할 경우에는 사용자가 어떤 이벤트를 실행시킬 때 전달인자를 넘겨서 실행시키는 경우에 사용하게 됩니다.

그리고 해당 컴포넌트가 실행될 때 마크업 영역에서 어떤 값과 함께 계산되어 출력되어야 한다면 화살표 함수가 아닌 일반 함수 호출로 작성해야 하는 것입니다.

 

그리고 전달인자가 없을 때에는 그냥 함수명만 {함수명} 이런식으로 호출하면 된다는 것도 기억하시면 좋겠습니다.

 

 

 

0

roberto park

감사합니당!

0

Indie Coder

도움이 되셨다니 다행입니다. 혹시 괜찮으시면 나중에 수강평 부탁드릴게요 ㅎ

프로젝트 실행이 되지 않아 menu API 테스트가 불가합니다 ㅠ

0

137

9

모듈 버전이 안맞아서 발생하는 문제 같습니다;;;

0

194

2

meteor 버전 때문에 실행이 안됩니다.

0

165

2

graghQL의 transaction 처리속도가 궁금합니다.

0

116

2

질문있습니다.

0

111

2

Meteor 실행 오류 문의 드립니다.

0

185

1

Window 환경에서 meteor 설치하는 부분에 대해 실습환경 구축 부분에 추가내용이 없습니다.

0

223

3

리액트에서 적용할 때 질문있습니다.

0

219

1

Upload, 파일사이즈 코드 질문있습니다.

0

265

1

이벤트 함수 on, handle 어떤 기준으로 정하는걸까요?

0

318

1

itemForm에서 Modal바인딩 질문있습니다.

1

184

1

css 파일 질문있습니다

0

178

1

섹션7 디자인요소배치 이후 흰색화면..

0

228

1

accessToken과 리프레시토큰 구현

0

248

2

DISABLE_WEBSOCKETS=true meteor run 실행이 안됩니다.

0

402

2

git bash 환경에서도 meteor run이 안됩니다.

0

295

1

윈도우 meteor run 할 때 에러

0

451

2

notyf를 이용한 알람 효과 / 강의 보완점 및 질문

0

591

1

validate(폼검증) 설정 강의내용 / 코드 보완점 제보

0

566

1

import "/imports/startup"; 에서 문제가 발생했습니다.

0

751

2

DISABLE_WEBSOCKETS=true meteor run 문제

0

538

2

apollo-upload-client 패키지 설치에러 문구

0

497

1

meteor npm i short 설치 에러문구

0

413

1

apollo-cache 조작 방법 / update Item 부분

0

386

1