1. ホーム
  2. reactjs

[解決済み] React 16におけるclassとclassNameの比較

2023-02-01 07:20:37

質問

React16では、DOMに属性を渡すことができるようになりましたね。ということは、classNameの代わりに'class'が使えるということですよね?

以前のバージョンのReactとの後方互換性以外に、classよりもclassNameをまだ使う利点があるのかどうか気になるところです。

どのように解決するのですか?

class はjavascriptのキーワードで、JSXはjavascriptの拡張機能です。これが、Reactで className の代わりに class .

その点では何も変わっていません。

これをもう少し拡大すると A キーワード は、あるトークンが言語の構文において特別な意味を持つことを意味します。例えばで。

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 .