H5客户端获取Url参数的方法

一,window.location.href: 获取完整的url链接
二,this.$ route.path:前端路由中配置的path
三,this.$ route.fullPath:当前页面除去协议,域名后的完整链接
四,以对象的形式获取当前Url链接?后面拼接的参数,有以下两种方法:
1,this.$route.query
2,以函数的形式,函数参数可以不传:

function GetRequest(str) {
    var url = str ? str : decodeURI(location.search); //获取url中"?"符后的字串
    var theRequest = new Object();
    if (url.indexOf('?') != -1) {
        url = url.substr(1);
    }
    if (url) {
        var strs = url.split('&');
        for (var i = 0; i < strs.length; i++) {
            var srtArry = strs[i].split('=');
            var y = srtArry.shift();
            theRequest[y] = unescape(srtArry.join('='));
        }
    }
    return theRequest;
}

五,获取从上个页面传递过来的参数,有以下两种方法:
1,this.$ route.query
A.vue

this.$router.push({
    path: '/B',    // B完整的path
    query: {
        number: '111111111111111',
        cityNo: '21',
        latitude: '31.24',
        longitude: '121.67',
        type: 'sssss'
    }
});

B.vue
用this.$ route.query就可以获取A.vue中传递过来的参数,并且当前页面会显示带参数的完整的Url,刷新页面后参数依然存在
2,this.$ route.params:
A.vue

this.$router.push({
    name: 'B',
    params: {
        number: '111111111111111',
        cityNo: '21',
        latitude: '31.24',
        longitude: '121.67',
        type: 'sssss'
    }
});

B.vue
用this.$route.params就可以获取A.vue中传递过来的参数,但是当前页面的Url不会显示拼接的参数,并且刷新页面后参数不会存在

最后,大家有没有注意到在A.vue和B.vue中用到的分别是this.$ router和this.$ route,两者之家有什么区别呢?
this.$ router是全局路由对象,每个页面都可以调用push, go等方法
this.$route表示当前正在跳转的路由对象,可以调用其path, name, query, params等属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值