반응 키 - 맵에서만이 아님
키 🦅의 고유한 사용 사례로 건너뛰기
핵심 소품은 무엇입니까? 🗝
핵심 소품은 최적화에 관한 것입니다.
키를 설정하면 어떤 특정 항목이 변경되어 다시 렌더링해야 하는지 React에 알립니다. 이는 React가 전체 목록 대신 변경된 항목만 다시 렌더링하기 때문에 성능상의 이유로 중요합니다.
key
는 변경, 추가 또는 제거된 항목을 식별하는 데 사용됩니다. key
는 주변 배열의 맥락에서만 의미가 있습니다. key
는 string
또는 number
입니다. 키를 선택하는 가장 좋은 방법은 형제 중에서 목록 항목을 고유하게 식별하는 string
를 사용하는 것입니다. 대부분의 경우 데이터의 ID를 키로 사용합니다. key
는 구성 요소를 통해 React의 Virtual DOM
로 전달되며 값에 액세스하기 위해 props
에서 파괴될 수 없습니다. 핵심 소품의 고유한 사용 사례
◈ UI 깜박임 방지
UI 깜박임 - 키 사용
UI 깜박임 - 키 없음
그 차이는 미묘하지만 첫 번째 버튼(
Stack
구성 요소의 자식을 변경함)을 누른 후 파란색 배경이 잠시 남아 있음을 볼 수 있습니다.자식을 래핑하기 위해
React.Fragment
를 사용하기 때문에 발생합니다. div 또는 다른 래핑 태그를 사용하는 경우 깜박임이 표시되지 않습니다.So why not just do that instead you ask?
By wrapping with adiv
, for example, we will only have one child and thegap="20px"
prop won't apply.
In this case, it is a styling preference to wrap it withReact.Fragment
.
◈ 새 컴포넌트 인스턴스 마운트(by )
onChange
이벤트 대신 input
소품을 사용하여 상태를 key
에 연결합니다.상태가 변경될 때마다
input
의 새 구성 요소 인스턴스를 마운트합니다.try commenting-out the
key
prop and see that theinput
's value doesn't change.
◈ 배열의 모든 React Node에 수동으로 키 추가
그다지 독특하지는 않지만 여기에는 지도가 없기 때문에 쉽게 무시할 수 있습니다.
반응 노드(반응 구성 요소)의 배열인 prop을 전달할 때 각 노드에 고유
key
를 추가해야 합니다.<Main actions={[<PlusChar key="plus-char" />, <MinusChar key="minus-char" />]} />
키를 전달하지 않으면 일반적인 경고가 표시됩니다.
게다가 우리는
key
가 제공하는 최적화를 즐기지 못할 것입니다.결론:
key
가 없으면 단순한 경고 이상을 유발할 수 있습니다.UI 깜박임이 발생하거나 새 구성 요소 인스턴스를 강제로 마운트할 수 있습니다.
Reference
이 문제에 관하여(반응 키 - 맵에서만이 아님), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/danielbellmas/react-key-not-only-in-map-2d7e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)