1.跳轉到新標簽頁
網上看到跳轉到新標簽頁有兩種方式:
第一種:
dofunc () { let routeUrl = this.$router.resolve({ path: '/abc', query: {id : 22} }) window.open(routeUrl .href, '_blank) }
第二種:
<router-link target="_blank" :to="{path:'/abc',query:{id:'22'}}">跳轉到新頁面</router-link>
2. 參數傳遞
網上看到有四種方式:
1)通過動態路由方式
//路由配置文件中 配置動態路由 { path: '/detail/:id', name: 'Detail', component: Detail } //跳轉時頁面 var id = 1; this.$router.push('/detail/' + id) //跳轉后頁面獲取參數 this.$route.params.id
2)通過query屬性傳值
//路由配置文件中 { path: '/detail', name: 'Detail', component: Detail } //跳轉時頁面 this.$router.push({ path: '/detail', query: { name: '張三', id: 1, } }) //跳轉后頁面獲取參數對象 this.$route.query
3)通過params屬性傳值
//路由配置文件中 { path: '/detail', name: 'Detail', component: Detail } //跳轉時頁面 this.$router.push({ name: 'Detail', params: { name: '張三', id: 1, } }) //跳轉后頁面獲取參數對象 this.$route.params
4)一種感覺滿非主流的方式
function parseUrl(){ var url=location.href; var i=url.indexOf('?'); if(i==-1)return; var querystr=url.substr(i+1); var arr1=querystr.split('&'); var arr2=new Object(); for (i in arr1){ var ta=arr1[i].split('='); arr2[ta[0]]=ta[1]; } return arr2; } var v = parseUrl();//解析所有參數 alert(v['id']);//就是你要的結果
其中,
1.動態路由和query屬性傳值 頁面刷新參數不會丟失, params會丟失
2.動態路由一般用來傳一個參數時居多(如詳情頁的id), query、params可以傳遞一個也可以傳遞多個參數 。