W3C中是這樣解釋a標(biāo)簽的:
標(biāo)簽定義超鏈接,用于從一張頁面鏈接到另一張頁面。
從一張頁面跳轉(zhuǎn)到另一張頁面,但從這里來說就違背了多視圖的單頁Web應(yīng)用這個概念
通過a標(biāo)簽進(jìn)行跳轉(zhuǎn),頁面會被重新渲染,即相當(dāng)于重新打開一個新的網(wǎng)頁,體現(xiàn)為視覺上的“閃爍”(如果是本地的項(xiàng)目基本看不出來)
router-link
組件支持用戶在具有路由功能的應(yīng)用中 (點(diǎn)擊) 導(dǎo)航。 通過 to 屬性指定目標(biāo)地址,默認(rèn)渲染成帶有正確鏈接的 標(biāo)簽,可以通過配置 tag 屬性生成別的標(biāo)簽.。
通過router-link進(jìn)行跳轉(zhuǎn)不會跳轉(zhuǎn)到新的頁面,也不會重新渲染,它會選擇路由所指的組件進(jìn)行渲染,避免了重復(fù)渲染的“無用功”。
總結(jié):對比,router-link組件避免了不必要的重渲染,它只更新變化的部分從而減少DOM性能消耗
Vue的創(chuàng)新之處在于,它利用虛擬DOM的概念和diff算法實(shí)現(xiàn)了對頁面的"按需更新",
Vue-router很好地繼承了這一點(diǎn),重渲染是我們不希望看到的,因?yàn)闊o論跳轉(zhuǎn)到哪個頁面,只需要渲染一次就夠了。組件幫助我們實(shí)現(xiàn)了這個愿望
反觀標(biāo)簽,每次跳轉(zhuǎn)都得重渲染一次,在一個浩大的項(xiàng)目里,這多么可怕!我們的"渲染"做了許多"無用功",而且消耗了大量彌足珍貴的DOM性能!