[material-ui][Collapse] Deprecate sx prop

plicqrtu  于 4个月前  发布在  其他
关注(0)|答案(3)|浏览(43)

过渡不应该支持 sx 属性:

  • [Transition] 添加 sx 属性类型 #32025(审查)
  • [Transition] 添加 sx 属性类型 #32025(评论)

Collapse 过渡是唯一一个在其类型中包含它的过渡。我们应该将其弃用并标记为将要移除。我们还应该在 migrating from deprecated APIs guide 上添加迁移说明。我们也可以尝试添加一个代码修改,但我不确定它应该如何工作。

搜索关键词:

jutyujz0

jutyujz01#

过渡不应该支持sx属性:
为什么不应该?原因不明。我明白为什么Transition和react-transition-group不应该记录sx属性,因为它不是一个DOM节点,所以它不托管它(技术上如果宿主支持它并且类型应该警告不要这样做)。但是<Collapse>根托管自己的DOM节点,所以看起来它应该支持sx属性。
这里有另一个例子可以看看:如果className属性起作用(例如添加实用程序类),那么sx属性应该起作用。这对我来说似乎是一条基线约束,永远不要妥协。我实际上希望MUI系统用类名实现sx属性:#23220
我移除了“准备就绪”的标签,在我看来我们至少都很好。最糟糕的情况是,我们错过了我们在迁移/弃用文档页面上写的“为什么”。

0ve6wy6x

0ve6wy6x2#

从用户的Angular 来看,Collapse 和其他不包含根DOM节点的过渡组件之间没有区别。我认为 Collapse 拥有自己的DOM节点是一个实现细节,不应该反映到它的API中。
保留 sxCollapse 上的缺点是,这可能导致用户期望其他过渡组件支持它(过渡组件的工作方式的 https://github.com/mui/material-ui/pull/32025)—the%E2%80%94the) 思维模型被削弱)。
虽然这不是一个巨大的问题,但我认为这是一个API设计增强,而不是需要修复的问题。
你怎么看 @mnajdova?

kdfy810k

kdfy810k3#

我认为问题在于,将单个DOM节点作为实现细节是非常困难的,这会影响定制体验。
Joy UI有一个我们可以进行基准测试的替代实现方法,也许还有空间可以移除这个DOM节点,但我仍然认为这不是一个明确的进步。Joy UI引入了明显的回归,我记得其中一个是动画持续时间。
在我看来,最重要的是我们要同步锁定类名与sx属性。例如,如果我们移除了sx属性,我们应该移除类名属性。

相关问题