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可以传递一个也可以传递多个参数 。