我正在做我的第一个react应用程序,我遇到了一些有趣的事情,我有时会使用 className
在...上 class
在反应。我只是想知道它们是否可以互换,还是有原因的?我还注意到,当我使用 class
检查元素控制台问我是不是指的是 className
,没有错误,只是问。
先谢谢你
根据response 文件:
要指定一个CSS类,使用className属性。这适用于所有常规DOM和SVG元素,如
<div>
,<a>
,以及其他。如果你使用React与Web Components(这是不常见的),使用类属性来代替。
如果您使用 class
作为一个属性,它不需要任何验证就可以传递给底层的 dom 元素,但这不是首选的方法。className
是一个被react理解的属性。
React文档推荐使用 cannonical React attribute
名字,而不是传统的Javascript命名,所以即使React允许属性传递给DOM,它也会给你一个警告。
这又是一个识别未知DOM属性的 "功能"。
在过去,React曾经忽略未知的DOM属性。如果你写的JSF有一个React不识别的属性,React会直接跳过它。
它 变了 从 React 16
并给出一个警告。在React中使用DOM组件的方式并没有改变,但现在你有了一些新的功能。
React一直为DOM提供了一个以JavaScript为中心的API。由于React组件经常同时使用自定义和DOM相关的道具,因此React使用camelCase约定就像DOM API一样是有意义的。
至于 className
:
要指定一个CSS类,使用className属性。这适用于所有常规DOM和SVG元素,如
<div>
,<a>
,以及其他。如果你使用React与Web组件(这是不常见的),使用类属性来代替。
请看 用JSX指定属性:
由于JJSX比HTML更接近JavaScript,React DOM使用camelCase属性命名惯例而不是HTML属性名。
例如,class在JSF中变成className,tabindex变成tabIndex。