实战总结 localStorage

77 阅读1分钟

场景

  • 一个 userId 对应多个 nodeId,通过路由 router.currentRoute.value.query.id 拿到 nodeId 并使用 localStorage 进行缓存,但是同一用户打开多个 nodeId 的页面的时候,nodeId 会被覆盖

解决方案

  • localStorage

    • key:keyName + nodeId

    • value:nodeId

    • 比对 key 来判断打开的是哪个 nodeId 的页面

    • 问题,key 中 nodeId 和要比对的 nodeId 都是通过路由拿到的,多此一举了

    • key 中加 value 来做校验思路可以参考

  • 直接从 url 中拿到 nodeId

// 使用URLSearchParams来解析参数
const urlParams = new URLSearchParams(window.location.search)

// 使用get方法获取id参数的值
const nodeId = urlParams.get('id')

TBC

  • window.location.href

    • 获取完整的 URL
  • new URLSearchParams(window.location.search)