JSX 虽然看起来很像 HTML,但在底层其实被转化为了 JavaScript 对象,你不能在一个函数中返回多个对象,除非用一个数组把他们包装起来。
这就是为什么多个 JSX 标签必须要用一个父元素或者 Fragment 来包裹。
JSX 最终会被转化为 JavaScript,而 JSX 中的属性也会变成 JavaScript 对象中的键值对。
在你自己的组件中,经常会遇到需要用变量的方式读取这些属性的时候。
但 JavaScript 对变量的命名有限制。例如,变量名称不能包含 - 符号或者像 class 这样的保留字。
这就是为什么在 React 中,大部分 HTML 和 SVG 属性都用驼峰式命名法表示。
例如,需要用 strokeWidth 代替 stroke-width。
由于 class 是一个保留字,所以在 React 中需要用 className 来代替。