動(dòng)態(tài)路由:
當(dāng)我們很多個(gè)頁面或者組件都要被很多次重復(fù)利用的時(shí)候,我們的路由都指向同一個(gè)組件,這時(shí)候從不同組件進(jìn)入一個(gè)"共用"的組件,并且還要傳參數(shù),渲染不同的數(shù)據(jù)
這就要用到動(dòng)態(tài)路由跟路由傳參了!
首先我們來了解下router-link這個(gè)組件:
簡單來說,它是個(gè)導(dǎo)航器,利用to屬性導(dǎo)航到目標(biāo)組件,并且在渲染的時(shí)候會(huì)自動(dòng)生成一個(gè)a標(biāo)簽,當(dāng)然官方也有說明,加個(gè)tag標(biāo)簽屬性就可以渲染不同的標(biāo)簽,可以瀏覽器端查看到
并且當(dāng)一個(gè)導(dǎo)航器被激活的時(shí)候,會(huì)自動(dòng)加上一個(gè)css的激活樣式,可以全局在路由配置中設(shè)置linkActiveClass屬性,屬性名就是樣式css名,一般寫為active
現(xiàn)在基本了解了router-link,先講一下動(dòng)態(tài)路由配置吧
我們?cè)谂渲寐酚傻臅r(shí)候,將目標(biāo)組件的路徑先配置好,如:
比如多個(gè)路由都要進(jìn)入List組件,這時(shí)候在配置路由路徑后加個(gè):id(id可隨便取名,標(biāo)識(shí)),這個(gè)屬性id可以在$route.params.id
中獲取,例如:
當(dāng)前這個(gè)child組件要進(jìn)入,以上配置的id就等于on;這時(shí)候在List組件中打印出$route.params.id就可以得到這個(gè)屬性值on
這個(gè)時(shí)候,不同組件進(jìn)入同一目標(biāo)組件時(shí)就可以得到標(biāo)識(shí)跟備注了,也可以利用這個(gè)來傳遞一些正常的參數(shù)
接著往下看,帶參數(shù)的路由,跟獲取傳來的參數(shù)值
當(dāng)router-link被激活點(diǎn)擊時(shí),會(huì)將當(dāng)前的to的值push到router對(duì)象當(dāng)中(路由棧),所以這個(gè)值可以是string也可以是obj
傳參數(shù)的時(shí)候,我們就寫成對(duì)象的形式,用到v-bind的js表達(dá)式
此時(shí)整個(gè)的理解可以為:我是child組件過來的,而且我還帶來了我的名字,我叫child
在List組件當(dāng)中去獲取這個(gè)參數(shù)值跟id的值
如果是不同的組件過來的,可以設(shè)置不同的id值,只要在目標(biāo)組件獲取屬性id的值就可以了,參數(shù)就利用query.屬性值來獲取。
總結(jié)
以上所述是小編給大家介紹的vue動(dòng)態(tài)路由配置及路由傳參的方式,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com