还是介绍一个小工具 path-to-regexp 用于快速拆解url path中的部分,贴别适合restful接口中快速获取对应的实体参数
举个列子,当你监听history对象的时候可以获取到pathname对象,比如访问 /implatationdef/25 这个路径的时候,返回对象如下,这时候query对象是空的
当访问/implatationdef/25?a=111这个路径的时候,pathname对象是可以获取到query对象并正确解析键值对的关系
但是其实我们更关心implatationdef后面25这个表示projectid的对象,这时候就可以使用pathToRegex这个小工具了,利用正则快速抽出对应的参数对象
调用方法比较简单
if (pathname === '/implatationdef') {
const match = pathToRegexp('/implatationdef/:projectId').exec(pathname);
if (match) {
const projectId = match[1];
const query = {
projectId:projectId,
};
dispatch({
type: 'queryProjectDef',
payload: query,
});
}
}