taro 列表渲染


元素的 key 在他的兄弟元素之間應該唯一

數組元素中使用的 key 在其兄弟之間應該是獨一無二的。然而,它們不需要是全局唯一的。當我們生成兩個不同的數組時,我們可以使用相同的 key

key 的取值

key 的取值必須同時滿足三個條件:

  1. 穩定
  2. 可預測
  3. 唯一(相對於其他兄弟元素)
    最好的 key 就是數組里的 ID(通常由后端生成),他能同時滿足以上三個條件,同時也不需要自己去生成。
    如果沒有 ID,你能保證數組的元素某個鍵值字符串都是不同的(例如 item.title),那么使用那個字符串鍵值也可以。
    如果源數據沒有提供很好的 key 值,或者需要遍歷的數組生成的,那么你最好在數據創建或者修改之后給他添加一個好的 key 值。
    每一個在渲染結果上一致的組件應該對應一個相同的 key。因此使用數組的 index 或在數組渲染時隨機生成一個 key 值(但你在創建數組時可以這么做)都是反優化,極端情況下甚至可能導致渲染出錯。

與 React 的不同

在 React 中,JSX 是會編譯成普通的 JS 來執行,每一個 JSX 元素,其實會通過 createElement 函數創建成一個 JavaScript 對象(React Element)。
但是 Taro 中,JSX 會編譯成微信小程序模板字符串,因此你不能把 map 函數生成的模板當做一個數組來處理。當你需要這么做時,應該先處理需要循環的數組,再用處理好的數組來調用 map 函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM