英文seo公司seo文章
一、v-for必須要指定key,其作用是什么?
在源碼中有一個(gè)函數(shù)為,其中就是通過判斷兩個(gè)vnode的type和key進(jìn)行判斷,如果這兩個(gè)屬性相同,那么這兩個(gè)vnode就是相同,所以在設(shè)置key的時(shí)候也不可以設(shè)置為object等無法通過三等號(hào)判斷的類型。
export function isSameVNodeType(n1: VNode, n2: VNode): boolean {return n1.type === n2.type && n1.key === n2.key
}
二、diff分為五種對(duì)比策略
源碼在packages/runtime-core/src/renderer.ts的patchKeyedChildren()函數(shù)。
1、從前向后
2、從后向前
3、新節(jié)點(diǎn) > 舊節(jié)點(diǎn)
4、舊節(jié) > 新節(jié)點(diǎn)
5、亂序