ReactJS组件名称必须以大写字母开头?

ReactJS组件名称必须以大写字母开头?

我在玩ReactJS框架JSBin.

我注意到,如果我的组件名以小写字母开头,则它不起作用。

例如,以下内容没有呈现:

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

但一旦我替换了fml带着Fml它确实渲染。

我为什么不能用小写字母开始标签呢?


千巷猫影
浏览 1837回答 3
3回答

冉冉说

Morphaus给出了一个很好的答案,只是想补充另一个细节。Reaction用于包含著名元素名称的白名单,如div等等,它用来区分DOM元素和反应组件。但是,因为维护这个列表并不那么有趣,而且由于web组件可以创建自定义元素,所以他们让它成为所有响应组件都必须以大写字母开头的规则,或者包含一个点。

慕后森

从官方反应参考:当元素类型以小写字母开头时,它引用了一个内置组件,如或,并导致字符串‘div’或‘span’传递给React.createElement。以大写字母开头的类型,如React.createElement(Foo),对应于在JavaScript文件中定义或导入的组件。还注意到:我们建议用大写字母命名组件。如果您有一个以小写字母开头的组件,那么在使用它之前,将它分配给一个大写变量。这意味着人们必须使用:const Foo = foo;使用前foo作为JSX中的一个组件元素。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

React.JS