왜 전달인자가 있을때 화살표 함수를 쓰는게 더좋을까요.?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
전달인자가 있을때 화살표 함수를 쓰는게 더좋을까요.?
Props 전달시 아래두개 차이는 무엇일까요?
{함수명}
{() => 함수명() }
답변 1
1
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>따라서 이 두가지 케이스는 용도가 다릅니다.
화살표 함수를 이용할 경우에는 사용자가 어떤 이벤트를 실행시킬 때 전달인자를 넘겨서 실행시키는 경우에 사용하게 됩니다.
그리고 해당 컴포넌트가 실행될 때 마크업 영역에서 어떤 값과 함께 계산되어 출력되어야 한다면 화살표 함수가 아닌 일반 함수 호출로 작성해야 하는 것입니다.
그리고 전달인자가 없을 때에는 그냥 함수명만 {함수명} 이런식으로 호출하면 된다는 것도 기억하시면 좋겠습니다.
프로젝트 실행이 되지 않아 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





