1. ホーム
  2. javascript

[解決済み] ReactJSのコンポーネント名は大文字で始めなければならない?

2022-04-29 02:14:19

質問

ReactJSフレームワークで遊んでいます。 JSBin .

コンポーネント名が小文字で始まる場合、動作しないことに気づきました。

例えば、次のようなものはレンダリングされません。

var fml = React.createClass({
  render: function () {
    return <a href='google.com'>Go</a>
  }
});

React.render(<fml />, document.body);

しかし fmlFml はレンダリングされます。

タグを小さい文字で始められないのは、何か理由があるのでしょうか?

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

JSXでは、小文字のタグ名はHTMLタグとみなされます。ただし、小文字のタグ名にドットを付けたもの(プロパティアクセサ)は、HTMLタグとはみなされません。

参照 HTMLタグとReactコンポーネントの比較 .

  • <component /> は、以下のようにコンパイルされます。 React.createElement('component') (htmlタグ)
  • <Component /> は、以下のようにコンパイルされます。 React.createElement(Component)
  • <obj.component /> は、以下のようにコンパイルされます。 React.createElement(obj.component)