在我最近的 “自定义属性作为状态” 文章中,我提到的一件事是,理论上,UI 库(如 React 和 Vue)可以自动将它们管理的状态映射到 CSS 自定义属性,这样我们就可以在需要时直接使用该状态。
有人应该创建一个
useStateWithCustomProperties
钩子或类似的东西来做到这一点。 #freeidea
Andrew Bloyce 接受了我的这个想法.
它的工作原理正是我所期望的。 该钩子返回一个组件,该组件是自定义属性的“边界”,传递给它的任何状态都将映射到这些自定义属性。 基本演示
这已经很聪明且实用,但我告诉你,如果 更高级别的自定义属性 概念落地,这将变得非常有用。 这个想法是,你可以切换一个自定义属性,然后让一整块样式发生变化,这就是我们现在使用媒体查询所享受的功能,你也知道这些功能有多有用。
您好,很抱歉,这个库不应该这样使用,你不应该在渲染期间创建组件类型,这种架构会导致你无法从该组件向下保存任何内部状态。 如果有任何东西重新渲染,它会销毁它下面的整个组件树,并创建一个新的组件树,因为如果组件类型在渲染期间发生变化,React 会销毁整个组件树。
最好有一个非 React/原生 JavaScript 的示例来说明它是如何工作的。
重点是将自定义属性从一个旨在管理状态的系统中映射出来。 在原生 JavaScript 中,你可以像这样更新自定义属性