第一种:
/**
* 将{ a: 1, b: 2 } => a=1&b=2
* @param {object} query
*/
export function queryToString(query = {}) {
const encode = encodeURIComponent;
return Object.keys(query)
.map(key => `${encode(key)}=${encode(query[key])}`)
.join('&');
}
第二种:
/**
* 由?a=1&b=2 ==> {a:1, b:2}
* @param {string}
*/
function getQuery(search) {
const query = {};
// 去掉`?`
const searchString = search.slice(1);
if (searchString) {
searchString
.split('&')
.map(item => item.split('='))
.forEach(item => {
query[item[0]] = item[1];
});
}
return query;
}
第三种:
function getUrlParam(key, search) {
const params = {};
_.each((search || window.location.search).substring(1).split('&'), item => {
const values = item.split('=');
params[values[0]] = values[1];
});
return key ? params[key] : params;
}