首先咱们举一个例子 咱们如今有这个数组 [ { 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