id 넘겨주는 부분 bind
아이디를 넘겨주는 곳에서 bind로 id 값을 바인딩 해주면 어떨까요?
답변 1
1
bind를 사용하셔도 됩니다.
둘의 차이는 거의 없이 동일하게 동작합니다.
둘 모두 render영역 내에서 생성하므로 매 랜더시마다 새롭게 생성되는 함수라는 점에서
성능을 떨어뜨리는 요인이 될 수 있다고 보는 사람들도 있지만
어지간히 규모가 큰 함수가 아닌 이상에는 유의미한 성능저하는 없다고 봐도 됩니다.
둘을 굳이 비교하면 다음과 같은 약간의 차이점들이 있긴 합니다.
1) bind에 의해 생성된 bound함수는 name 프로퍼티가 존재하는 반면
arrow함수는 name 프로퍼티가 비어있는 익명함수입니다.
따라서 bound함수가 디버깅시 추적에 상대적으로 용이하다는 장점이 있는데,
최근의 브라우저들은 위치까지 정확히 표기해주고 있어서 실제로는 큰 차이를 보이지는 않습니다.
2) bind 사용시에는 원본함수에 '오직 매개변수를 넘기기 위한 목적일 경우'에도
thisArg 자리를 비울 수가 없어 부득이 null 같은 무의미한 값을 넘겨줘야 합니다.
한편 arrow함수는 낭비되는 요소가 없습니다.
개인적으로는 arrow 함수를 선호합니다.
null을 넘겨주지 않아도 되며, 가독성도 더 뛰어나다고 생각하기 때문인데,
이는 어디까지나 개인의 취향이며,
질문자님 취향 및 팀 분위기에 따라 취사선택하시면 되겠습니다. :)
추가) bound 함수의 [[TargetFunction]], [[BoundThis]], [[BoundArgs]] 와
arrow 함수의 [[FunctionLocation]] , [[Scopes]] 정보는
크롬 브라우저에서 자체적으로 구현한 내용으로
다른 브라우저들에서는 다른 방식으로 표현하거나, 아예 노출하지 않고 있습니다.
질문있습니다 !
0
135
2
sass 오류
0
174
1
does not match
0
164
2
프로젝트 배포
0
299
1
코드 똑같이 쳤는데 scss 적용이 안돼요 ㅠㅠ
0
748
1
scss 스타일 적용
0
478
2
yarn run client시 에러는 안 나는데 호스트가 열리질 않습니다 ㅠㅠ
0
430
1
무한 스크롤 관련 질문 드립니다.
1
513
2
props 를 넘겨줄 때 함수를 그대로 넘겨줄 때와 화살표 함수로 감싸서 넘겨줄 때의 차이가 궁금합니다 :)
0
454
1
getInitialProps 과 getServerSideProps에 대해서 질문드립니다!
0
1144
1
node-sass를 했을 때 에러가 발생합니다.
0
377
1
[소스 다운로드 안됩니다]
0
323
1
rendered HTML error 관련
2
2188
2
닉네임 부분이 잘못되어 있는 것 같습니다.
0
448
2
Typescript 질문드려요!
0
332
1
error 관련하여
1
289
1
질문이 있습니다!.
0
278
1
질문이 있습니다!
0
486
1
수정된 내용까지 확인했는데 에러가 납니다 ㅠ
1
303
2
React Hydration Error 가 나는 이유가 무엇일까요 ?;;
0
631
1
useRef를 선호하시는 이유가 궁금합니다!
1
794
1
react-query 4.0.0 버전에선 에러가 납니다
0
668
1
gql 백틱 안에 색깔 입혀지는 확장프로그램이 어떤건지 알 수 있을까요?
2
685
1
typeScript에 대한 질문을 어디다가 올려야할지 몰라서 여기다가 남깁니다!
0
303
1





