URL片段中波浪线分隔值的名称及替代GET参数的用途疑问
特殊URL片段格式解析
格式命名
你看到的这种格式是**Clojure/EDN(Extensible Data Notation)**的自定义简化变体。EDN是Clojure生态中用于数据序列化的轻量级格式,核心用括号、波浪线、单引号来表达结构化数据:
- 波浪线
~替代了标准EDN里的空格/逗号,用来分隔键值对 - 单引号
'标记符号(作用类似字符串) - 嵌套括号直接表示层级结构(比如示例里的
filters下嵌套了postType和tags集合)
使用该格式的原因
相比常规GET参数或通用片段格式(比如JSON),它的优势集中在适配特定技术栈和结构化表达上:
- 嵌套结构表达更简洁:常规GET参数是扁平键值对,要表示嵌套结构得用
filters[postType][]=post这类冗余写法,而EDN变体用嵌套括号就能清晰传递层级关系,前端解析时无需手动处理嵌套参数的拆分逻辑。 - 无URL编码负担:URL片段(
#之后的部分)不会被发送到服务器,仅在前端处理,所以其中的特殊符号(括号、波浪线)不需要URL编码,既缩短了URL长度,也提升了可读性。 - 适配Clojure技术栈:如果网站使用ClojureScript这类前端框架,EDN格式可以直接对接框架原生的数据结构,省去了JSON序列化/反序列化的额外步骤,降低开发成本。
- 团队内部约定的高效方案:属于小众但针对性强的格式,在使用Clojure生态的团队中,这种简化版EDN是传递前端状态的自然选择,只要内部统一解析规则,就能高效运作。
内容的提问来源于stack exchange,提问作者Orun
相关产品推荐
相关产品推荐

