Skip to content

span 的废弃提示落后 div 两步:仍是逐次渲染告警,且照旧对 kind:'html' tier 自产节点开火 #4917

Description

@yinlianghui

发现于 #4000 的实施(PR #4916),不在该 PR 处理 —— 那一单按维护者裁定只收窄 div。本条是同族的 span 落在两条已裁定纪律之外。

现象

packages/components/src/renderers/basic/span.tsx:20-27 至今是原始写法:

两条叠加的后果与 div 当初一致:提示对引擎自己解析器的输出开火,且不去重。

为什么现在可以直接做

PR #4916 已经把机制落在生产者侧并从包入口导出:@object-ui/sdui-parserisHtmlTierNode(symbol 标记,Symbol.for 注册键,对 JSON / DOM 不可见)。span.tsx 只需照抄 div.tsx 现在的形状 —— warn-once 守卫 + 豁免判断放在 Set 标记之前(顺序本身是被钉住的:html-tier 节点先渲染不得吞掉之后作者节点应得的那一条)。

影响面(实测)

  • examples/schema-catalog"type": "span" 命中 0;仓内 JSON 元数据命中 0。所以今天没有 catalog 刷屏,与 div 当初的 189 个节点不同。
  • 会撞到的是:JSON 作者面手写 span 的页面(每次渲染一条),以及 kind:'html' 页面里写 span 标签的作者(无法消除的一条)。均只在非 production 构建。

参考位置

  • packages/components/src/renderers/basic/span.tsx:20-27(逐次渲染的告警块)
  • packages/components/src/renderers/basic/div.tsx(PR fix(components): div 废弃提示按 provenance 收窄到 JSON 作者面 (#4000) #4916 后的目标形状)
  • packages/components/src/__tests__/div-deprecation-warn-once.test.tsx / div-deprecation-provenance.test.tsx(可照抄的钉子形状)
  • content/docs/components/basic/span.mdx:11(与 div.mdx 同样需要补一句作用域说明)

验收建议

  1. kind:'html' tier 自产的 span 节点渲染零提示(含渲染对照断言,防整页编译失败造成的空绿);
  2. JSON 作者面的 span 节点仍报,且每模块加载恰好一条;
  3. 提示文案写明它针对哪一个作者面。

关联:#4000 / PR #4916(机制来源)、#3965 / PR #3998(warn-once 形状与「留作后续」的原话)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions