React 16中的class vs className
我看到React 16允许将属性传递给DOM。因此,这意味着可以使用“类”代替className,对吗?
我只是想知道仍然可以使用className而不是class来实现优势,除了可以向下兼容React的早期版本。
回答:
class
是javascript中的关键字,而JSX是javascript的扩展。这就是React使用className
而不是的主要原因class
。
在这方面没有任何改变。
将其扩展更多。一个 关键字 意味着一个令牌有一个语言的语法具有特殊意义。例如:
class MyClass extends React.Class {
令牌class
表示下一个令牌是标识符,其后是类声明。请参阅Javascript关键字+保留字。
令牌是关键字这一事实意味着我们不能在某些表达式中使用它,例如
// invalid in older versions on Javascript, valid in modern javascriptconst props = {
class: 'css class'
}
// valid in all versions of Javascript
const props = {
'class': 'css class'
};
// invalid!
var class = 'css';
// valid
var clazz = 'css';
// invalid!
props.class = 'css';
// valid
props['class'] = 'css';
问题之一是没人能知道将来是否还会出现其他问题。每种编程语言仍在发展,并且class
可以在某些新的冲突语法中实际使用。
没有这样的问题className
。
以上是 React 16中的class vs className 的全部内容, 来源链接: utcz.com/qa/415114.html