VUE路由跳轉傳遞參數的幾種方式


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可以傳遞一個也可以傳遞多個參數 。













免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM