首先咱們舉一個例子 咱們如今有這個數組 [ { id:201401, name:'chen' }, { id:201402, name:'sun' }, { id:201403, name:'wang' }, ]算法
若是咱們使用index作key在咱們渲染到頁面的時候變成數組
若是咱們使用id作key在咱們渲染到頁面的時候變成 < ul> li key:201401 ,id:201401,name:chen li key:201402 ,id:201402,name:sun li key:201403 ,id:201403,name:wang </ ul> 若是咱們要在中間插入一條數組{id:201404,name:zhou} < ul> li key:201401 ,id:201401,name:chen li key:201404 ,id:201404,name:wang li key:201402 , id:201402,name:sun li key:201403 , id:201403,name:wang </ ul> 由於咱們是已id爲key值,因此當咱們向數組中間插入一個新的數據,diff算法發現本來的三個< li>的key值沒改變,只是在中間加入了一個新的元素,本來的三個< li>獲得了複用這也就利用了虛擬dom在性能上的優點dom