react router之Query parameters 查询参数

部分内容参考文章:https://www.mediaat.cn/news/show-3418.html,感谢(ง •_•)ง

一、Query parameters

该示例其实本质是借用了浏览器内置的URLSearchParams,这个方法可以很方便的解析url参数,但这个存在兼容问题,放弃IE家族就没问题了。具体URLSearchParamsAPI,可参考MDN这段示例代码:

var paramsString = "q=URLUtils.searchParams&topic=api"
var searchParams = new URLSearchParams(paramsString);searchParams.has("topic") === true; // true
searchParams.get("topic") === "api"; // true
searchParams.getAll("topic"); // ["api"]
searchParams.get("foo") === null; // true
searchParams.append("topic", "webdev");
searchParams.toString(); // "q=URLUtils.searchParams&topic=api&topic=webdev"
searchParams.set("topic", "More webdev");
searchParams.toString(); // "q=URLUtils.searchParams&topic=More+webdev"
searchParams.delete("topic");
searchParams.toString(); // "q=URLUtils.searchParams"

1-- React Router对于应该如何解析URL查询字符串没有任何意见。
2-- 如果使用简单的key=value查询字符串,并且不需要支持IE 11,则可以使用浏览器内置的URLSearchParams API。
3-- 如果查询字符串包含数组或对象语法,则可能需要自带查询解析函数。

官网案例:

import React from "react";
import { render } from 'react-dom'
import {BrowserRouter as Router,Link,useLocation
} from "react-router-dom";export default function App() {return (<Router><QueryParamsDemo /></Router>);
}//一个基于useLocation的自定义钩子,用于解析查询字符串
function useQuery() {// console.log以点击Yahoo为例:console.log(useLocation()); //{pathname: "/account", search: "?name=yahoo", hash: "", state: undefined, key: "h7ecl7"}console.log(useLocation().search);  //?name=yahooreturn new URLSearchParams(useLocation().search);
}function QueryParamsDemo() {let query = useQuery();return (<div><div><h2>Accounts</h2><ul><li><Link to="/account?name=netflix">Netflix</Link></li><li><Link to="/account?name=zillow-group">Zillow Group</Link></li><li><Link to="/account?name=yahoo">Yahoo</Link></li><li><Link to="/account?name=modus-create">Modus Create</Link></li></ul><Child name={query.get("name")} /></div></div>);
}function Child({ name }) {return (<div>{name ? (<h3>The <code>name</code> in the query string is &quot;{name}&quot;</h3>) : (<h3>There is no name in the query string</h3>)}</div>);
}render(<App />, document.getElementById("root")
)

效果:

二、useLocation(具体可见Hooks)

1-- useLocation钩子返回表示当前URL的location对象。您可以将其视为useState,它在URL更改时返回新位置。
2-- 这可能非常有用,例如,在您希望在加载新页面时使用web分析工具触发新的“页面视图”事件的情况下

Query parameters 查询参数相关推荐

  1. 在AngularJS中读取查询参数的最简洁方法是什么?

    本文翻译自:What's the most concise way to read query parameters in AngularJS? I'd like to read the values ...

  2. feign调用接口参数可以为null吗_FeignClient调用POST请求时查询参数被丢失的情况分析与处理...

    前言 本文没有详细介绍 FeignClient 的知识点,网上有很多优秀的文章介绍了 FeignCient 的知识点,在这里本人就不重复了,只是专注在这个问题点上. 查询参数丢失场景 业务描述: 业务 ...

  3. html获取url后面的参数_Golang Gin 实战(四)| URL查询参数的获取和原理分析

    在 上一篇 Golang Gin 实战(三)| 路由参数 文章中,主要介绍了路由通配符.路由参数,让我们有了一种可以从URL路径中获取参数的方式,同时又不是重复的注册相似的路由. 这一篇,主要介绍查询 ...

  4. hibernate使用Query进行查询

    本文主要探讨hibernate的简单查询,主要是使用Query进行的查询. 1.首先看下annotation的API中关于查询的描述 2.3. 映射查询 2.3.1. 映射EJBQL/HQL查询 使用 ...

  5. solr查询参数使用说明

    q – 查询字符串,必须的.Solr 中用来搜索的查询.有关该语法的完整描述,请参阅 参考资料中的 "Lucene QueryParser Syntax".可以通过追加一个分号和已 ...

  6. solr常用查询参数意义及其简单用法

    最近开始搞solr,其查询界面的一些参数令人费解,于是写篇博客总结一下较常用的参数的意义和用法. 查询参数界面如下图: q:query 查询字符串 输入 * : *,返回所有结果 输入 apple,返 ...

  7. Go 学习笔记(50)— Go 标准库之 net/url(查询转义、查询参数增/删/改/查、解析URL)

    1. URL 概述 import "net/url" url 包解析 URL 并实现了查询的转码.URL 提供了一种定位因特网上任意资源的手段,但这些资源是可以通过各种不同的方案( ...

  8. 基于服务器端保存用户的查询参数

    基于服务器端保存用户的查询参数 最近公司项目有一个新的需求, 希望用户在PC查询的参数能够同步更新到APP端, 避免让用户在PC和APP端重复输入查询条件, 基于项目是前后端分离, APP和PC的请求 ...

  9. ASP.NET三层架构之不确定查询参数个数的查询

    在做三层架构的时候,特别是对表做查询的时候,有时候并不确定查询条件的个数,比如查询学生表:有可能只输入学号,或者姓名,或者性别,总之查询条件的参数个数并不确定,下面是我用List实现传值的代码: 附图 ...

最新文章

  1. java Web项目如何windows桌面运行?
  2. 电池报废征兆,三招辨别该不该换新
  3. vb.net2019-下载文件
  4. 【H2 Database】导出CSV
  5. []End of 2017OI
  6. 计算机专业的双证在职研究生,计算机类在职研究生最终能获得双证吗难度是不是很大呢...
  7. ext get id js_【翻译】Ext JS最新技巧——2015-8-11
  8. modem建链过程详述
  9. 电脑无线网络与服务器共享,图文详解win7笔记本如何实现内置无线局域网卡共享...
  10. CrossOver for Mac 怎么用?
  11. 《研磨设计模式》builder生成器模式(golang)
  12. Windows系统快速查找文件
  13. 2022年最新的编程语言排名
  14. 使用Matlab理解PID
  15. CentOS 6.8 Local time zone must be set--see zic manual page
  16. 目前流行的Bug缺陷管理工具
  17. 健康大讲堂—凡膳皆药 寓医于食
  18. SSL/TLS Suffers ‘Bar Mitzvah Attack’漏洞检测方法及修复建议
  19. 计算机绘图自考知识点,自考《04052建筑工程制图》串讲讲义【据陈文斌、顾生其、同济大学2015版】...
  20. 【GANs学习笔记】(三)GANs理论基础

热门文章

  1. Android获取Bugreport
  2. 【华为2019年校园招聘】2019-4-10 软件题
  3. Unity中模拟爆炸的力
  4. try...catch和finally
  5. 直播间聊天item图文混排思路
  6. win error 10107
  7. 网络层笔记二、虚拟互连网络概念
  8. BP神经网络matlab工具箱实现
  9. SQL INSERT INTO SELECT 语句
  10. 亚马逊防关联的三不原则|亚马逊电商--店铺运营防关联