Nach dem Transpilieren funktioniert dieser Code nicht
%Vor%aber das tut es
%Vor%erzeugt im ersten Fall babel
%Vor% und auf der Seite ist ein leeres <firstLow data-reactroot><firstLow/>
Element gerendert.
Und im zweiten Fall
%Vor%und es funktioniert. Meine Komponente wird gerendert.
Was ist los?
Was ist los?
Dies ist eine Konvention in JSX / React. Kleinbuchstaben werden in Strings (Tags) umgewandelt, Großbuchstaben werden als Variablen (Komponenten) aufgelöst.
Aus den Dokumenten :
Vorbehalt:
Beginnen Sie immer Komponentennamen mit einem Großbuchstaben.
Beispiel:
<div />
steht für ein DOM-Tag, aber<Welcome />
stellt eine Komponente dar und erfordertWelcome
im Geltungsbereich.
In React beginnen Component
Namen mit Großbuchstaben. JSX-Tags in Kleinbuchstaben repräsentieren literale HTML-Tags. Dies ist Teil der React-Spezifikation .
Dies ist der Grund, warum <foo>
in createElement('foo')
übersetzt wird, während <Foo>
in createElement(module.Foo)
.
Sie sollten Ihre Komponenten mit Großbuchstaben benennen. Nicht viel anderes zu tun.
Tags und Links reactjs ecmascript-6 babeljs