最近做了一个vue的小的项目,是由外部链接打开的,所以就要涉及从外部url中获取参数。虽然不是很难的问题,但是在最初遇到这个问题的时候也头疼了一小会儿~
(汗颜,遇到未知的东西总会先头疼一下,实际做起来才知道原来这么简单,哈哈)
从外部url中获取参数
var url = window.location.href ; //拿到当前页面url,vue编译完成的页面会有'#/'
//例如http://c.baidu.com/mark?setId=64#/
var dz_url = url.split('#')[0]; //#前面的有用字符
var cs = dz_url.split('?')[1]; //?后面的参数字符串
var cs_arr = cs.split('&'); //将参数字符串分割为包含多个参数的数组
var cs={}; //声明一个容器
for(var i=0;i<cs_arr.length;i++){ //遍历数组
//将下标为0123的数组字符串,转化为 {key1:value1;key2:value2;} 格式的json
cs[cs_arr[i].split('=')[0]] = cs_arr[i].split('=')[1]
}
在需要使用参数的地方这样赋值
this.setId = cs.setId;
vue模板内部互传、取参数
从A页面跳转B页面:在A页面当中:
// 定义跳转函数,并传输数据
goDetail(){
this.$router.push({name:"detail",query:{
setId:this.setId,
courseId:this.courseId
}})
}
在需要跳转的地方调用该函数
this.goDetail();
在B页面当中,取值:
this.setId = this.$route.query.setId;
this.courseId = this.$route.query.courseId;
vue会将数据加在url后面传输给目标页面,url格式例子如下
http://c.baidu.com/marke?setId=64#/detail?setId=64&courseId=26
注意:url当中不能传对象,亲测传对象会出错