1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /**
  2. * queryString 转 object
  3. * @param {*} queryStr
  4. * @returns
  5. */
  6. export function parseQueryString(queryStr) {
  7. if (!queryStr) {
  8. return;
  9. }
  10. const params = queryStr.split('&').reduce((acc, str) => {
  11. if (!str) return acc;
  12. const kv = str.split('=')
  13. if (kv.length !== 2) return acc;
  14. const key = decodeURIComponent(kv[0])
  15. const val = decodeURIComponent(kv[1])
  16. return {
  17. ...acc,
  18. [key]: val,
  19. }
  20. }, {});
  21. return params;
  22. }
  23. /**
  24. * object 转 queryStr
  25. * @param {*} params
  26. * @returns
  27. */
  28. export function getQueryString(params) {
  29. if (!params) return ;
  30. const keys = Object.keys(params)
  31. const arr = keys.map((key) => {
  32. const val = params[key]
  33. return `${key}=${encodeURIComponent(val)}`
  34. })
  35. return arr.join('&')
  36. }