为什么反应中的组件需要大写?

ngs*_*chr 15 javascript reactjs

因此,当您使用小写的第一个字母声明组件时,它不会显示,而不会抛出错误.大写组件名称时,它确实有效.

这是什么实现的?为了避免与现有的html元素发生冲突,或者这是一个错误?

var test = React.createClass({
  render: function() {
    return (
      <div>Test</div>
    );
  }
});

var Screen = React.createClass({
  render: function() {
    return (
      <div>
        <test/>
      </div>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

当我改为testTest,它有效:

var Test = React.createClass({
  render: function() {
    return (
      <div>Test</div>
    );
  }
});

var Screen = React.createClass({
  render: function() {
    return (
      <div>
        <Test/>
      </div>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 14

一些反应发布说明

JSX标记名称约定(小写名称表示内置组件,大写名称表示自定义组件).

  • 我认为有可能违反惯例.如果破坏约定会破坏代码,那么它不仅仅是一个约定. (11认同)