JavaScript URLSearchParams 对象用法与封装实践

作者:远帆时间:2026-10-26 07:41:00浏览:138

本文介绍 JavaScript 中 URLSearchParams 对象的基本用法,包括通过字符串、数组或对象初始化查询参数。详细解析 has、get、set 等核心 API,并演示如何在 React 项目中封装工具函数,将对象转换为 URL 查询字符串以优化链接生成。

基本用法

需要注意的是,该功能在部分浏览器中仍处于开发阶段,兼容性表现可能不够理想。

通过 URLSearchParams() 构造函数可以创建并返回一个新的 URLSearchParams 实例。在初始化时,若字符串以 ? 开头,该字符将被自动忽略。

语法定义如下:

// init: 参数可选,为一个 USVString
var URLSearchParams = new URLSearchParams(init);

具体示例如下:

// 传入一个字符串字面值
var searchParams = new URLSearchParams('https://example.com?foo=1&bar=2');
console.log(searchParams.toString());	// foo=1&bar=2
// 查找字符串
console.log(searchParams.has('foo'));	// true
// 获取字符串对应的数据
console.log(searchParams.get('foo'));	// 1
// 设置字符串
searchParams.set('ttl','3');	// 1
console.log(searchParams.toString());	// foo=1&bar=2&ttl=3


// 传入一个 sequence
var params3 = new URLSearchParams([["foo", 1],["bar", 2]]);
console.log(params3.toString());	// foo=1&bar=2

// 传入一个 record
var params4 = new URLSearchParams({"foo" : 1 , "bar" : 2});
console.log(params4.toString());	// foo=1&bar=2

生成的 URL 打印结果如下:

基本用法

实践运用

函数封装实现:

export function toSearch(record: Record<string, string>) {
  return new URLSearchParams(record).toString();
}

调用方式示例:

// Button 按钮是adtd里面的,这里只展示局部代码
<Button
  type="link"
  href={`#/project/flowpage?${toSearch({
    id: 666,
    name: "liu",
  })}`}
  target="_blank"
>
  点击按钮
</Button>

最终效果展示:

// 前面域名指向当前网页的域名,这里暂用...省略
...#/project/flowpage?id=666&name="liu"

至此,关于 JS 中 URLSearchParams 对象的操作(以对象形式上传参数到 URL)的介绍已完成。如需了解更多 JS URLSearchParams 相关内容,建议查阅本站过往文章或继续浏览后续教程,感谢大家的支持!

作者最新文章
相关文章
更多