動態(tài)路由:
當我們很多個頁面或者組件都要被很多次重復利用的時候妙真,我們的路由都指向同一個組件蝠嘉,這時候從不同組件進入一個"共用"的組件最疆,并且還要傳參數(shù),渲染不同的數(shù)據(jù)
這就要用到動態(tài)路由跟路由傳參了蚤告!
首先我們來了解下router-link這個組件:
簡單來說努酸,它是個導航器,利用to屬性導航到目標組件杜恰,并且在渲染的時候會自動生成一個a標簽获诈,當然官方也有說明,加個tag標簽屬性就可以渲染不同的標簽心褐,可以瀏覽器端查看到
并且當一個導航器被激活的時候舔涎,會自動加上一個css的激活樣式,可以全局在路由配置中設置linkActiveClass屬性檬寂,屬性名就是樣式css名终抽,一般寫為active
現(xiàn)在基本了解了router-link戳表,先講一下動態(tài)路由配置吧
我們在配置路由的時候桶至,將目標組件的路徑先配置好,如:
比如多個路由都要進入List組件匾旭,這時候在配置路由路徑后加個:id(id可隨便取名镣屹,標識),這個屬性id可以在$route.params.id中獲取,例如:
當前這個child組件要進入价涝,以上配置的id就等于on女蜈;這時候在List組件中打印出$route.params.id就可以得到這個屬性值on
這個時候,不同組件進入同一目標組件時就可以得到標識跟備注了色瘩,也可以利用這個來傳遞一些正常的參數(shù)
接著往下看伪窖,帶參數(shù)的路由,跟獲取傳來的參數(shù)值
當router-link被激活點擊時居兆,會將當前的to的值push到router對象當中(路由棧),所以這個值可以是string也可以是obj
傳參數(shù)的時候覆山,我們就寫成對象的形式,用到v-bind的js表達式
此時整個的理解可以為:我是child組件過來的泥栖,而且我還帶來了我的名字簇宽,我叫child
在List組件當中去獲取這個參數(shù)值跟id的值
如果是不同的組件過來的勋篓,可以設置不同的id值,只要在目標組件獲取屬性id的值就可以了魏割,參數(shù)就利用query.屬性值來獲取