第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我們使用item'id或item'name作為反應列表項目的鍵?

為什么我們使用item'id或item'name作為反應列表項目的鍵?

慕森王 2021-04-07 16:19:57
我們使用item'id或item'name作為item的鍵。但是我發(fā)現(xiàn)我使用Array的索引作為鍵,重新呈現(xiàn)頁面的速度更快。我們總是提醒您使用id或name作為密鑰,這是錯誤的嗎?我進行了兩個演示進行比較,發(fā)現(xiàn)索引比id的唯一值要快。我們單擊btn來調用changeSort方法以重新呈現(xiàn)頁面。您可以找到ID,因為密鑰比較慢constructor(){    super();    this.state = {        sorts:  this.buildArr()    }}buildArr = () => {    let len = 10000, tempArr = [];    for (let i = 1; i < len; i++) {        tempArr.push({            name: `a${i}`,            id: `b${i}`        })    }    return  tempArr;}changeSort = () => {        this.setState((prestate) => ({            sorts: prestate.sorts.reverse()        }))    }render() {    return (     <div>          <div onClick={this.changeSort}>changeState</div>        <ul>           {this.state.sorts.map((item, index) => {                 return <li key={index}>{item.name} </li>            })}        </ul>     </div>    )}compare with render() {    return (     <div>          <div onClick={this.changeSort}>changeState</div>         <ul>           {this.state.sorts.map((item, index) => {                 return <li key={item.id}>{item.name} </li>            })}         </ul>     </div>    )}我希望我使用item'id作為鍵來重新渲染頁面比使用數(shù)組索引作為鍵更快,但是事實恰恰相反。
查看完整描述

2 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

當您只需要更新集合的一部分時,跟蹤發(fā)光的好處。說,數(shù)百個瓷磚中的一個已更改。要知道哪個更改了(哪個需要更新),需要一些唯一的標識符。因此key。


查看完整回答
反對 回復 2021-04-22
  • 2 回答
  • 0 關注
  • 246 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號