vuejs v-for에 :key 속성이 필요한 이유는 무엇입니까?
vscoode가 vuejs v-for에 이 속성이 필요하다고 불평하고 있습니다.
나빠
<p v-for='person in people'> {{person.name}} </p>
좋아요.
<p v-for='(person, index) in people' :key='index'> {{person.name}} </p>
그럼 왜 :key Attribute가 필요한 거죠?
배열에 항목 목록이 있다고 가정합니다.
v-for
v-for를 사용하면 인덱스를 기반으로 모든 항목이 표시됩니다.VueJs는 이러한 모든 요소를 추적하지 않습니다.항목이 변경될 때마다 VueJs는 배열 내 항목의 인덱스에 따라 돔의 위치를 바꿉니다(요소를 이동하는 대신 바꿉니다).(돔의) 위치를 수정하거나 대체하기만 하면 됩니다.배열 항목의 값은 저장되지 않습니다.아이템의 가치를 추적하지 않습니다.인덱스 위치만 저장합니다.
이 문제의 문제는 vuej가 당사의 요구에 따라 업데이트할 수 없는 항목 배열의 변경에 있습니다.(경우에 따라 기억하십시오).vuej가 어레이 내에서 이러한 항목을 추적하도록 하려면 어떻게 해야 합니까?여기서 :key가 나옵니다.
: 키
이제 v-for vuejs의 주요 특성(예: item.id)을 언급할 때 이러한 항목을 직접 참조합니다.이제 vuejs는 위치를 저장하는 대신 항목을 저장합니다.Vuejs는 어레이 내의 모든 항목을 추적합니다.현재 항목이 변경될 때마다 돔의 항목이 변경됩니다.(dom 내의 요소를 이동함으로써): 키는 vuejs가 이러한 모든 항목을 추적하고 있는지 확인합니다.(모든 키 Atribute는 ID와 같이 동작합니다.변경이 있을 때마다 vuejs는 항상 갱신된 값을 취합니다.)
최종 사용자로서 출력에서는 큰 차이가 없지만(:key를 언급하지 않은 경우) 위의 백그라운드에서 문제가 발생합니다.
이 과정을 거치면 분명히 차이를 발견할 수 있을 것이다.키를 사용한 재사용 가능 요소 제어
thankd가 지적한 바와 같이:vue 2.2.0+를 사용하는 경우 vue 컴포넌트에 필요합니다.
2.2.0+에서는 구성 요소와 함께 v-for를 사용할 때 이제 키가 필요합니다.
원답:
Vue.js 공식 가이드에 기재되어 있는 바와 같이
Vue가 각 노드의 ID를 추적하여 기존 요소를 재사용하고 재정렬할 수 있도록 힌트를 제공하려면 고유한 [...]을 제공해야 합니다. 반복된 DOM 컨텐츠가 단순하거나 성능 향상을 위해 일부러 기본 동작에 의존하는 경우가 아니라면 가능하면 항상 v-for와 함께 키를 제공하는 것이 좋습니다.
필요 없어요.key
하여 '''를 사용합니다.v-for
하지만 이는 좋은 방법이기 때문에 VScode의 IntelliSense는 이를 추가하라고 지시하고 있습니다.
언급URL : https://stackoverflow.com/questions/47395535/why-is-the-key-attribute-needed-in-vuejs-v-for
'source' 카테고리의 다른 글
루프 후 문자열 버퍼/빌더 지우기 (0) | 2023.01.29 |
---|---|
사전 대신 명명된 튜플을 사용해야 하는 시기와 이유는 무엇입니까? (0) | 2023.01.29 |
PHP 기본 도메인/url을 가져오는 방법 (0) | 2023.01.29 |
최대 날짜를 기준으로 그룹화 (0) | 2023.01.29 |
PHP를 사용하여 문자열에서 마지막 쉼표를 제거하려면 어떻게 해야 합니까? (0) | 2023.01.29 |