当前位置: 首页 > article >正文

replaceState和vue的router.replace删除query参数的区别

  1. 使用history.replaceState
/**
 * 替换当前的 history state和url
 * @param {(searchParams:URLSearchParams)=>any} cb
 */
export const replaceUrlSearch = (cb) => {
  // 获取当前 URL
  const url = new URL(window.location.href)

  // 获取 URL 的查询参数
  const searchParams = new URLSearchParams(url.search)

  // 删除 code 参数
  // searchParams.delete('code')
  typeof cb == 'function' && cb(searchParams)

  // 更新 URL 的查询参数
  url.search = searchParams.toString()

  // 使用 history.replaceState 更新 URL
  history.replaceState({}, document.title, url.toString())
}

然后通过该方法删除某个query参数

// 该方法不起作用,vue router的route.query.isEnd还是有包含该参数
  replaceUrlSearch((searchParams) => {
   searchParams.delete('clockPointId')
   searchParams.delete('isEnd')
   })
  1. 使用router.replace
router.replace({ path: currentRoute.value.path, query: {} })

在vue项目中,如果要替换掉query参数,可以使用router.replace来替换,通过route.query.xxx获取的参数就会有变化,如果是通过 history.replaceState 的话,就要通过 location.href.search来获取或者 new UrlSearchParams(location.href.search)


http://www.kler.cn/a/505634.html

相关文章:

  • ESP8266固件烧录
  • 我的年度总结
  • GCN详细介绍:原理、主要应用
  • JSON 文本的多层嵌套格式
  • 数据结构-线性表
  • 机器学习06-正则化
  • 无人机航拍价格 航拍价格
  • 内存快照:宕机后Redis如何实现快速恢复?
  • 基于RFM聚类与随机森林算法的智能手机用户监测数据案例分析
  • Shell脚本一键推送到钉钉告警并@指定人
  • Nginx 如何设置 Upgrade-Insecure-Requests 报头 ?
  • python tkinter做界面 SDK打开海康工业相机,callback取图,halcon显示
  • 一文了解如何使用 DBeaver 管理 DolphinDB
  • 1_CSS3 边框 --[CSS3 进阶之路]
  • 计算机网络-数据链路层(虚拟局域网VLAN)
  • git管理源码之git安装和使用
  • 1月14学习
  • 数据结构与算法之二叉树: LeetCode 654. 最大二叉树 (Ts版)
  • 【Linux】Linux命令:traceroute
  • apache-skywalking-apm-10.1.0使用
  • 讲一些算法的知识点——(1)
  • Linux TA_Lib安装
  • 智能科技与共情能力加持,哈曼重新定义驾乘体验
  • TCP/IP协议簇及封装与解封装
  • C#中的Span
  • 代码随想录算法训练营第 8 天(字符串1)| 344.反转字符串 541. 反转字符串II 卡码网54.替换数字