在react中必需要有key值,key不是用來提高react的性能的,react中的key屬性,它是一個特殊的屬性,它是出現不是給開發者用的(例如你爲一個組件設置key以後不能獲取組件的這個key props),而是給react本身用的。react利用key來識別組件,它是一種身份標識標識,就像咱們的身份證用來辨識一我的同樣。每一個key對應一個組件,相同的key react認爲是同一個組件,這樣後續相同的key對應組件都不會被建立。這樣,有了key屬性後,就能夠與組件創建了一種對應關係,react根據key來決定是銷燬從新建立組件仍是更新組件。
* key相同,若組件屬性有所變化,則react只更新組件對應的屬性;沒有變化則不更新。
* key值不一樣,則react先銷燬該組件(有狀態組件的componentWillUnmount會執行),而後從新建立該組件(有狀態組件的constructor和componentWillUnmount都會執行)
* key屬性是添加到自定義的子組件上,而不是子組件內部的頂層的組件上
* key值的惟一是有範圍的,即在數組生成的同級同類型的組件上要保持惟一,而不是全部組件的key都要保持惟一
能夠用index當作key值,可是不建議,由於index不是惟一的,能夠用時間戳,也可讓後端給你一個惟一的標識