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 javascript

const 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

回到顶部