1. 程式人生 > >vue利用router-link 傳參 和 獲取引數的方式

vue利用router-link 傳參 和 獲取引數的方式

     本章只談如何利用router-link傳遞query引數.暫時不談程式設計導航傳參.兩者差不多.今天把router-link這種傳參和獲取引數的形式講解清楚.希望對大家有幫助.

    假如目前我們現在需要做一個專案.路由的設計是這樣的:

               主頁:www.wangyiyinyue.com;  首頁負責展示專輯封面;點選進去專輯詳情頁面;

               專輯詳情頁面路由: www.wangyiyinyue.com/zhuanji?zhuanjiName=liudehua&zhuanjiId=12456;

 這個時候大概的流程是這樣的:   輸入網址 首先進入主頁; 使用者點選某一張專輯;此時需要攜帶上引數,也就是上面的zhangjiName和zhuanjiId ;進入到專輯詳情頁;此時需要獲取到對應的引數再發送ajax請求;把專輯詳情頁面的內容請求回來; 

        為什麼要攜帶上引數呢? 因為進入到書籍詳情後,傳送ajax需要請求你主頁點的對應的那張專輯;所以需要引數來確定是哪種專輯;

 首先說傳遞引數; 利用router-link傳遞;

    書寫方式:

<router-link :to="{path: '詳情頁', query: {zhuanjiName: item.zhuanjiName, zhuanjiId: item.zhuanjiId}}"     去專輯詳情頁按鈕   </router-link>

我這裡寫的是 item.zhuanjiName    具體怎麼獲取;需要看你的資料格式; 然後進入專輯詳情後  url會變成這樣:

www.wangyiyinyue.com/zhuanji?zhuanjiName=liudehua&zhuanjiId=12456;

那我們在專輯詳情頁怎麼獲取url上的資料呢?也就是主頁傳遞來的資料;

通過this.$route.query; 來獲取; 在console面板輸出;query是一個物件; 格式應該是這樣的:

{zhuanjiName:name,zhuanjiId:id};  這個時候你就可以打點呼叫引數了;

另外這個地方有一個特別需要的注意的點,看好了:

this.$route.query    不是   this.$router.query;

就差一個字母   千萬不要寫錯.寫錯了獲取不到引數;他倆不是同一個物件;不過this.$router物件裡面也可以獲取到我們傳遞的引數;不過需要在打點呼叫currentRoute物件才能得到query;為了大家看的清楚點兒;我把圖片傳上去; 請大家看圖

第一個物件是this.$route;第二個物件是this.$router;  所以第一個物件我們可以直接再打點獲取到query;而第二個物件需要再打點一層currentRoute;  一般我們都是用第一種;  所以這裡一定要注意;

今天先寫到這兒吧; 下次再聊點兒其他的;有問題大家隨時留言;