Key 與 ID - daniel-qa/Vue GitHub Wiki

  • 問題:

concole 出現 重覆 key 的警告

vue.js:634 [Vue warn]: Duplicate keys detected: '1'. This may cause an update error.

=> 這與 Vue 的警告檢查機制有關

抓資料當然只能用 id(資料主鍵)

key 只是 Vue 畫面層的定位工具,跟資料查詢是兩個世界

 v-for="row in mappingData"
:key="`semester-map-${rowIndex}`"

row.source === semester.id

Vue 用 key 你用 id

兩邊各司其職,完全不衝突。

為什麼不能拿 key 當資料主鍵?

因為 key 可能是:

semester-map-0 semester-map-1

這只是 UI row identity 對資料世界沒有任何意義。

正確心法

id = 業務主鍵
key = DOM 主鍵