蘑小De菇

个人技术博客

hi,我是蘑小De菇,一名前端开发者。


记录个人对技术的理解和开发过程中遇到的问题,欢迎了解更多。

封装获取、修改URL参数的方法

URLSearchParams

const params = new URLSearchParams(window.location.search);
params.get("q"); // 'devpoint'
params.get("page"); // '1'
const entries = params.entries();
Object.fromEntries(entries); // {q: 'devpoint', page: '1'}

// 修改
params.set('foo',1)
window.location.search = `?${params}`

URL

url.searchParams 其实也是URLSearchParams的实例

const url = new URL(window.location.href);
const searchParams = url.searchParams;
searchParams.get("q"); // 'devpoint'
searchParams.get("page"); // '1'
searchParams.set('foo',1)
window.location.search = `?${searchParams}`

纯js

function getQueryParams(url) {
    const paramArr = url.slice(url.indexOf("?") + 1).split("&");
    const params = {};
    paramArr.map((param) => {
        const [key, val] = param.split("=");
        params[key] = decodeURIComponent(val);
    });
    return params;
}
下一篇

算法排序