2019-03-03
回答
React 一开始的理念是想与浏览器的 DOM API 保持一直而不是 HTML,因为这样会和元素的创建更为接近。在元素上设置 class
需要使用 className
这个 API:
const element = document.createElement("div")
element.className = "hello"
加分回答
- ES5 之前,在对象中不能使用保留字。以下代码在 IE8 中将会抛出错误:
const element = {
attributes: {
class: "hello"
}
}
- 在现代浏览器环境中,如果尝试为其分配一个变量时解构时就会抛出错误:
const { class } = { class: 'foo' } // Uncaught SyntaxError: Unexpected token }
const { className } = { className: 'foo' }
const { class: className } = { class: 'foo' }
- 使用
class
做为属性并不会出现问题,就像其他库一样,比如 Preact。React 在 16.3 中允许使用class
,但是会抛出一个警告并将其转换为className
。但经过 2019 年 1 月的开放讨论后,在 16.8 中使用class
将直接抛出错误Property 'class' does not exist on type
。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于