av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

詳談vue中router-link和傳統(tǒng)a鏈接的區(qū)別

瀏覽:40日期:2022-12-30 14:38:07

Vue-router是伴隨著Vue框架出現(xiàn)的路由系統(tǒng),它也是公認(rèn)的一種優(yōu)秀的路由解決方案。在使用Vue-router時(shí)候,我們常常會(huì)使用其自帶的路徑跳轉(zhuǎn)組件Link,通過實(shí)現(xiàn)跳轉(zhuǎn),這和傳統(tǒng)的何其相似!但它們到底有什么具體的區(qū)別呢?

官方中給出的解釋是這樣的:

<router-link> 比起寫死的 <a href='http://www.4tl426be.cn/bcjs/...' rel='external nofollow' rel='external nofollow' > 會(huì)好一些,理由如下:

無論是 HTML5 history 模式還是 hash 模式,它的表現(xiàn)行為一致,所以,當(dāng)你要切換路由模式,或者在 IE9 降級使用 hash 模式,無須作任何變動(dòng)。

在 HTML5 history 模式下,router-link 會(huì)守衛(wèi)點(diǎn)擊事件,讓瀏覽器不再重新加載頁面。

當(dāng)你在 HTML5 history 模式下使用 base 選項(xiàng)之后,所有的 to 屬性都不需要寫 (基路徑) 了。

呃呃,只能說博主剛學(xué)時(shí)第一次并沒有看懂(應(yīng)該是之前的基礎(chǔ)知識(shí)不牢固吧,看來之后得補(bǔ)補(bǔ)啦),于是去自行查閱啦:

<a href='http://www.4tl426be.cn/bcjs/...' rel='external nofollow' rel='external nofollow' >

W3C中是這樣解釋a標(biāo)簽的:

<a> 標(biāo)簽定義超鏈接,用于從一張頁面鏈接到另一張頁面。

從一張頁面跳轉(zhuǎn)到另一張頁面,但從這里來說就違背了多視圖的單頁Web應(yīng)用這個(gè)概念

通過a標(biāo)簽進(jìn)行跳轉(zhuǎn),頁面會(huì)被重新渲染,即相當(dāng)于重新打開一個(gè)新的網(wǎng)頁,體現(xiàn)為視覺上的“閃爍”(如果是本地的項(xiàng)目基本看不出來)

router-link

<router-link> 組件支持用戶在具有路由功能的應(yīng)用中 (點(diǎn)擊) 導(dǎo)航。 通過 to 屬性指定目標(biāo)地址,默認(rèn)渲染成帶有正確鏈接的 <a> 標(biāo)簽,可以通過配置 tag 屬性生成別的標(biāo)簽.。

通過router-link進(jìn)行跳轉(zhuǎn)不會(huì)跳轉(zhuǎn)到新的頁面,也不會(huì)重新渲染,它會(huì)選擇路由所指的組件進(jìn)行渲染,避免了重復(fù)渲染的“無用功”。

總結(jié):對比<a>,router-link組件避免了不必要的重渲染,它只更新變化的部分從而減少DOM性能消耗

Vue的創(chuàng)新之處在于,它利用虛擬DOM的概念和diff算法實(shí)現(xiàn)了對頁面的'按需更新',

Vue-router很好地繼承了這一點(diǎn),重渲染是我們不希望看到的,因?yàn)闊o論跳轉(zhuǎn)到哪個(gè)頁面,只需要渲染一次就夠了。<Link>組件幫助我們實(shí)現(xiàn)了這個(gè)愿望

反觀<a>標(biāo)簽,每次跳轉(zhuǎn)都得重渲染一次,在一個(gè)浩大的項(xiàng)目里,這多么可怕!我們的'渲染'做了許多'無用功',而且消耗了大量彌足珍貴的DOM性能!

補(bǔ)充知識(shí):使用vue中路由router-link中包含a標(biāo)簽

當(dāng)vue中使用router-link包含a標(biāo)簽的時(shí)候,a標(biāo)簽會(huì)取代routerlink的值實(shí)現(xiàn)跳轉(zhuǎn),

<div v-for='(item,index) in listName' @click='toDetail(item.id)'><p>{{item.name}}</p><p>{{item.address}}</p><p>{{item.distance}}米</p><a :href='http://www.4tl426be.cn/bcjs/getUrl(item.tel)' rel='external nofollow' rel='external nofollow' >圖標(biāo){{item.tel}}</a></div><!--<router-link :to='{path:’detail’,query:{id:item.id}}' tag='div' v-for='(item,index) in listName' @click='toDetail()'><p>{{item.name}}</p><p>{{item.address}}</p><p>{{item.distance}}米</p><a :href='http://www.4tl426be.cn/bcjs/getUrl(item.tel)' rel='external nofollow' rel='external nofollow' >圖標(biāo){{item.tel}}</a></router-link>-->

下面這個(gè)routerlink中a標(biāo)簽會(huì)替代router-link的使用

可以使用div加點(diǎn)擊事件

2 當(dāng)在vue中實(shí)現(xiàn) a href='tel:1325425652' rel='external nofollow' 的時(shí)候,直接使用:href='http://www.4tl426be.cn/bcjs/tel' rel='external nofollow' +變量的方法不可以,

可以使用函數(shù)封裝

getUrl(tel){return 'tel:'+tel;},

以上這篇詳談vue中router-link和傳統(tǒng)a鏈接的區(qū)別就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 婷婷视频在线 | 国产黄色三级 | 成人羞羞国产免费游戏 | 黄色一级片黄色一级片 | av在线免费观看网址 | 一区二区三区黄色 | 日韩视频在线免费观看 | 青青草免费观看 | 国产精品久久久一区二区三区 | 国产免费一区二区三区 | 国产成人小视频 | 91tv国产成人福利 | 在线观看视频国产 | 日韩一二区 | 欧美国产一区二区 | 一级片在线免费观看 | 精品一区二区三区中文字幕 | 久久久久久久网 | 亚洲一区二区三区在线 | 激情视频小说 | 欧美天堂| 国产成人精品在线观看 | 黄色网址av| 国产高清视频在线播放 | 91看片淫黄大片 | 国产一级在线 | 国产一区二区三区四区 | 国产黄色在线播放 | 久久久久久97 | 久久精品一区二区国产 | 三级黄色片 | 成人福利视频在线观看 | 久久视频免费 | 日本国产在线观看 | 日韩精品一区二区三区四区 | 免费观看毛片 | 国产精品一区二区不卡 | 天堂资源中文在线 | 日日干夜夜操 | 久久精品亚洲 | 日韩精品在线观看视频 |