Reactjs 为什么不在camelCase中?
从 请注意,JSX完全支持所有aria-*HTML属性。 而React中的大多数DOM属性和属性都是大小写的, 这些属性应为连字符大小写(也称为烤肉串大小写, lisp大小写等),因为它们在纯HTML中: 另外,在react中,每个HTML属性都被重命名为camelCase。 是否有任何理由解释为什么Reactjs 为什么不在camelCase中?,reactjs,accessibility,naming-conventions,wai-aria,camelcasing,Reactjs,Accessibility,Naming Conventions,Wai Aria,Camelcasing,从 请注意,JSX完全支持所有aria-*HTML属性。 而React中的大多数DOM属性和属性都是大小写的, 这些属性应为连字符大小写(也称为烤肉串大小写, lisp大小写等),因为它们在纯HTML中: 另外,在react中,每个HTML属性都被重命名为camelCase。 是否有任何理由解释为什么aria-*保留其原始名称 奖金,有人知道吗,应该是还是。前者看起来是正确的,因为我的编辑器没有抛出任何警告。但是属性名和属性值之间是否不一致 它是否也应该是autocomplete或autocom
aria-*
保留其原始名称
奖金,有人知道吗,应该是
还是
。前者看起来是正确的,因为我的编辑器没有抛出任何警告。但是属性名和属性值之间是否不一致
它是否也应该是
autocomplete
或autocomplete
,而原始属性名称中的auto
和complete
之间没有连字符?React API参考提供了一些有关这方面的信息。至少,它说:
在React中,所有DOM属性和属性(包括事件处理程序)都应该是camelCased。例如,HTML属性tabindex
对应于React中的属性tabindex
。例外情况是aria-*
和data-*
属性,它们应该是小写的。例如,您可以将aria标签
保留为aria标签
本节给出了autoComplete
和autoFocus
作为预期名称
现在,这并没有真正回答为什么aria-*
属性保持小写,但至少它清楚地说明了它们应该如何使用
推测:也许这与React版本15和16之间发生的变化有关。博客文章“”解释说,React 16中现在允许自定义属性,这是以前去掉的。它描述了一些问题,即属性的内部白名单已成为维护负担,需要简化。现在JSX中可以包含任意属性。我不知道这在内部是如何工作的,但我认为aria-*
属性在内部白名单的故事中起到了一定的作用。例如,WAI-ARIA 1.1最近引入了几个新的ARIA-*
属性,WAI工作草案引入了许多aui-*
属性。这两者都需要列入白名单