className属性是否在Reactjs中扮演id属性的角色?

时间:2015-02-14 18:53:18

标签: reactjs react-jsx

由于id属性意味着组件不会被重用,因此在Reactjs组件中很少使用id属性,那么使用的是className属性而不是id的?如果是这种情况,那么HTML中的class属性的Reactjs等价物是什么?

4 个答案:

答案 0 :(得分:7)

className用于CSS样式的类名,就像其他地方一样。

你可以给出一些独特的className用于造型目的,就像你给它一样id,当然,但这对其他{{1}并不是真的意味着什么。用法,它永远不能直接等同于className,因为id可以包含多个类名,其中没有一个必须是唯一的。 (无论React如何,还有pretty good reasons not to use id for styling

更常见的理由是不使用React赋予className某些东西,你很少需要添加钩子来查找真实DOM中的元素,因为你可以使用状态或道具来控制渲染更改做你需要做的任何动态的东西,如果你需要抓住一个元素,你可以给它一个id名称并在其上使用ref。< / p>

答案 1 :(得分:2)

要添加到insin的答案,ids确实有实际用途,但造型不是其中之一。

这两种情况是片段标识符和输入/标签配对。在这种情况下,您通常希望生成保证全局唯一的ID(但在渲染中保持一致)。为此,请使用像unique-id-mixin这样的mixin。

答案 2 :(得分:0)

首先,ID与React一起使用,并且它们不一定会阻止重复使用。例如,如果您想要使用某个元素,那么您必须为其提供一个ID(因此可以从其标记的&#34; list&#34;属性中引用它)。在这种情况下,我通常使用计数器变量自动生成ID。因此,ID和重复使用不必相互排斥。

要回答您的问题,请改用className属性,其工作方式与class属性相同。 &#34;反应/插件&#34; module提供了一个实用程序,可以轻松创建className值。

答案 3 :(得分:0)

ID仅供一次性使用(在React和一般情况下)或一次性实例。

classNames用于多种用法(在React和一般情况下)或用于多次实例 - 与传统CSS中使用类的方式相同。