reagieren JSX
Reagieren die herkömmliche Verwendung von JSX JavaScript zu ersetzen.
JSX sieht aus wie XML eine Erweiterung der JavaScript-Syntax ist.
Wir geben nicht unbedingt die JSX verwenden, aber es hat die folgenden Vorteile:
- JSX schneller ausgeführt, weil es in den JavaScript-Code nach der Optimierung kompiliert wird.
- Es ist typsicher, kann es während der Kompilierung Fehler gefunden werden.
- Verwenden Sie JSX Authoring-Schablone einfacher und schneller.
Verwenden Sie JSX
JSX sieht HTML sehr ähnlich, wir Beispiele sehen können:
ReactDOM.render( <h1>Hello, world!</h1>, document.getElementById('example') );
Wir können über mehrere HTML - Tags im Code verschachtelt werden, müssen SieDaten-MyAttribute Attribut hinzufügen Attribute benutzerdefinierte benutzerdefinierte Instanzen p - Element ein div Element zu verwenden,verwenden müssenFalldatenPräfix umgibt, ergänzt.
ReactDOM.render( <div> <h1>本教程</h1> <h2>欢迎学习 React</h2> <p data-myattribute = "somevalue">这是一个很不错的 JavaScript 库!</p> </div> , document.getElementById('example') );
Unabhängige Datei
Ihre Reaktion JSX Code kann auf einem separaten Dokument, beispielsweise platziert werden, erstellen wir eine helloworld_react.js
Datei wie folgt:
ReactDOM.render( <h1>Hello, world!</h1>, document.getElementById('example') );
Dann stellte in die JS-Datei in der HTML-Datei:
<body> <div id="example"></div> <script type="text/babel" src="helloworld_react.js"></script> </body>
JavaScript-Ausdruck
Wir können JavaScript Ausdrücke in der JSX nutzen. Schreiben Sie einen Ausdruck in geschweiften Klammern{}.Beispiele sind wie folgt:
ReactDOM.render( <div> <h1>{1+1}</h1> </div> , document.getElementById('example') );
Sie können nicht verwendet werden,wenn sonst Aussagen in JSX, eine einzige Stelle die bedingte (ternäre Operator)Ausdruck verwenden können. Das folgende Beispiel, wenn die Variablei gleich 1- Browser ausgeben wirdwahr,wenn Sie den Wert von i ändern, gibt erfalsch.
ReactDOM.render( <div> <h1>{i == 1 ? 'True!' : 'False'}</h1> </div> , document.getElementById('example') );
Stil
Reagieren empfehlen Inline-Styles verwenden. Wir könnenCamelcase - Syntax verwenden Inline - Stile festlegen. React fügt pxautomatisch nach einer bestimmten Elementnummer. Das folgende Beispiel zeigt das HinzufügenmyStyle Inline - Stil für h1Elemente:
var myStyle = { fontSize: 100, color: '#FF0000' }; ReactDOM.render( <h1 style = {myStyle}>本教程</h1>, document.getElementById('example') );
Note
Hinweis müssen in Klammern zu schreiben, Beispiele sind wie folgt:
ReactDOM.render( <div> <h1>本教程</h1> {/*注释...*/} </div>, document.getElementById('example') );
Feld
JSX ermöglicht das Einfügen in das Template-Array, wird das Array automatisch an alle Mitglieder zu erweitern:
var arr = [ <h1>本教程</h1>, <h2>学的不仅是技术,更是梦想!</h2>, ]; ReactDOM.render( <div>{arr}</div>, document.getElementById('example') );
HTML-Tags vs. Montage Reagieren
Reagieren Sie können HTML-Tags (Strings) oder Reagieren Komponenten (Klassen) zu machen.
Um machen HTML-Tags, verwenden Sie einfach den Tag-Namen in Kleinbuchstaben in der JSX.
var myDivElement = <div className="foo" />; ReactDOM.render(myDivElement, document.getElementById('example'));
Reagieren Komponente zu machen, erstellen Sie einfach eine lokale Variable zu Beginn mit einem Großbuchstaben.
var MyComponent = React.createClass({/*...*/}); var myElement = <MyComponent someProperty={true} />; ReactDOM.render(myElement, document.getElementById('example'));
Reagieren die JSX verwenden Groß- und Kleinschreibung Konventionen Klassen von lokalen Komponenten und HTML-Tags zu unterscheiden.
Hinweis:
Da JSX ist JavaScript, um eine Anzahl von Kennungen wie
class
undfor
nicht als XML - Attributnamen empfohlen. Als Alternative Reagieren DOM verwendenclassName
undhtmlFor
die entsprechende Eigenschaft zu tun.