Heim > Web-Frontend > js-Tutorial > Hauptteil

Welche Kenntnisse sollte ich über React lernen? Zusammenfassung der Reaktionswissenspunkte (mit vollständigen Beispielen)

寻∝梦
Freigeben: 2018-09-11 16:01:50
Original
1839 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich das Lernen über Reagieren vor und fasst die Wissenspunkte über Reagieren zusammen. Beginnen wir mit dem Lesen des Inhalts dieses Artikels

Offiziell beginnen wir mit dem Lernen von Reagieren

1 . Wenn der erste Buchstabe einer Komponente in React groß geschrieben ist, wird er als benutzerdefinierte Komponente betrachtet. Wenn er klein geschrieben ist, wird er als eigener Elementname des DOM betrachtet. Wenn der erste Buchstabe Ihres benutzerdefinierten Komponentennamens ein Kleinbuchstabe ist, wird kein Fehler gemeldet, aber er wird nicht angezeigt.

2. Es kann nur einen Knoten in der äußersten Ebene der Rückgabe einer benutzerdefinierten Komponente geben.

3. Im geschriebenen HTML können keine Anweisungen in {} enthalten sein, es können jedoch Bewertungsausdrücke vorhanden sein. Sie können die Anweisung aber auch in eine Funktion schreiben und die Funktion dann in {} aufrufen.

4. Funktionsnamen und Labelnamen werden in Kamel-Schreibweise benannt.

5. Verwenden Sie htmlFor und className. Zum Beispiel

6. Schreibstil: Sie können var style = {color: "red", backgroundColor:" in verwenden jsx blue"} und fügen Sie dann style={style} im benutzerdefinierten Tag hinzu. Denken Sie daran, die Benennung in Groß- und Kleinschreibung zu verwenden.

7. Nicht-DOM-Attribute:

a. hazardlySetInnerHTML: HTML-Code direkt in JSX einfügen

b. Referenz: übergeordnete Komponente verweist auf untergeordnete Komponente

c. Schlüssel: Renderleistung verbessern. Diff-Algorithmus

8. Funktionen, die in jedem Lebenszyklus der Komponente ausgeführt werden: a.

b. Laufen.

c. Zerstören.

9. Verwendung von Attributen:

a, //Weisen Sie dem Attributnamen den Wert „abc“ zu

b ,

var props = {
  one:"123",
  two:"456"  
}
<HelloWorld {...props}/>  //展开语法相当于<HelloWorld one="123" two="456"}/>
c、var a = ReactDOM.render(<HelloWorld/>,document.body);
Nach dem Login kopieren

a.setProps({name:"Tim"}); //Diese Verwendung wird nicht empfohlen, sie verstößt gegen die Designprinzipien von React (die neueste Version scheint diese Funktion entfernt zu haben? Console.log kommt heraus und greift nach der Prototypenkette. Ich konnte diese Funktion nach der Suche nicht finden, nur setState)

10. Verwendung des Status:

 var HelloWorld = React.createClass({             render:function(){                 return <p>Hello,{this.props.name||"world"}</p>             }         });         var HelloUniverse = React.createClass({             handleChange:function(e){                 this.setState({                     name:e.target.value                 });             },             getInitialState:function(){                 return {                     name:&#39;&#39;,                 }             },             render:function(){                 return <p>
                     <HelloWorld {...this.state}/>
                     <input type="text" onChange={this.handleChange} />
                 </p>             }         });         var a = ReactDOM.render(<HelloUniverse/>
         ,document.getElementById("root"));
Nach dem Login kopieren

11. Attribute und Status Ähnlichkeiten und Unterschiede

12. Ereignisverarbeitungsfunktion

14. Kollaborative Nutzung von Komponenten

Kollaborative Nutzung zwischen übergeordneten und untergeordneten Komponenten Sie können untergeordnete Komponenten verwenden, um Methoden übergeordneter Komponenten aufzurufen. Um dieses Ziel zu erreichen, wird die übergeordnete Komponente durch prop

 <!DOCTYPE html>
 <html lang="zh-cn">
 <head>
     <meta charset="UTF-8">
     <title>Hello,world</title>
     <script src="../demo01/build/react.js"></script>
     <script src="../demo01/build/react-dom.js"></script>
     <script src="../demo01/browser.min.js"></script>
 </head>
 <body>
     <p id= "root"></p>
     <script type="text/babel">         var GenderSelect = React.createClass({             render:function(){                 return <select name="gender" onChange={this.props.handleSelect}>
                     <option value="1">男</option>
                     <option value="0">女</option>
                 </select>             }         });         var SignupForm = React.createClass({             getInitialState:function(){                 return {                     name:&#39;&#39;,                     pwd:&#39;&#39;,                     gender:&#39;&#39;,                 }             },             handleChange:function(name,e){                 var newState = {}                 newState[name] = e.target.value;                 this.setState(newState);             },             handleSelect:function(e){                 this.setState({gender:e.target.value});             },             render:function(){                 console.log(this.state)                 return <form>
                     <input type="text" onChange={this.handleChange.bind(this,&#39;name&#39;)}/>
                     <input type="text" onChange={this.handleChange.bind(this,&#39;pwd&#39;)}/>
                     <GenderSelect handleSelect={this.handleSelect}/>
                 </form>             }         });         var a = ReactDOM.render(<SignupForm />,document.getElementById("root"));
     </script>
 </body>
 </html>
Nach dem Login kopieren

Eltern-Kind-Komponenten-Interaktion

an die untergeordnete Komponente übergeben (Wenn Sie möchten Weitere Informationen finden Sie hier. PHP-Chinesische Website React-Referenzhandbuch (Weitere Informationen in der Spalte) Brothers-Komponenten können implementiert werden, indem die untergeordnete Komponente A an die übergeordnete Komponente und die übergeordnete Komponente an die untergeordnete Komponente übergeben wird Komponente B.

15. Mixin

 <!DOCTYPE html>
 <html lang="zh-cn">
 <head>
     <meta charset="UTF-8">
     <title>Hello,world</title>
     <script src="../demo01/build/react.js"></script>
     <script src="../demo01/build/react-dom.js"></script>
     <script src="../demo01/browser.min.js"></script>
 </head>
 <body>
     <p id= "root"></p>
     <script type="text/babel">         var SetInit = {             handleClick:function(e){                 console.log(e.target.value);             }         }         var Hello = React.createClass({             //这里命名必须为mixins
             mixins:[SetInit],             render:function(){                 return <input type="button" onClick={this.handleClick} value="123123"/>             }         });         var a = ReactDOM.render(<Hello />,document.getElementById("root"));
     </script>
 </body>
 </html>
Nach dem Login kopieren

Mixin-Instanz

Vor- und Nachteile:

 <!DOCTYPE html>
 <html lang="zh-cn">
 <head>
     <meta charset="UTF-8">
     <title>Hello,world</title>
     <script src="../demo01/build/react.js"></script>
     <script src="../demo01/build/react-dom.js"></script>
     <script src="../demo01/browser.min.js"></script>
 </head>
 <body>
     <p id= "root"></p>
     <script type="text/babel">         var BindingMixin = {             handleChange:function(name){                 var that = this;                 return function(e){                     var news = {};                     news[name] = e.target.value;                     that.setState(news);                 }             }         };         var Example = React.createClass({             //这里命名必须为mixins
             mixins:[BindingMixin],             getInitialState:function(){                 return {                     text:&#39;&#39;                 }             },             render:function(){                 return <p>
                     <input type="text" onChange={this.handleChange(&#39;text&#39;)} />
                     <p>{this.state.text}</p>
                 </p>             }         });         var a = ReactDOM.render(<Example />,document.getElementById("root"));
     </script>
 </body>
 </html>
Nach dem Login kopieren

mixin

16. Steuerbare Komponenten und unkontrollierbare Komponenten

Steuerbare Komponenten haben keinen Wert. Fest codiert, wie etwa value={this.state.value}.

Unkontrollierbar ist das Gegenteil.

Versuchen Sie, steuerbare Komponenten zu verwenden

Aufgetretene Probleme:

1. Im Konfigurationselement wepack.config.js, da der Loader im Modul über mehrere Konfigurationselemente verfügt Es sollten Loader sein, aber ich habe Loader geschrieben, was dazu führte, dass die nachfolgenden Konfigurationselemente nicht wirksam wurden und viele Kompilierungsprobleme auftraten. . .

2. Vergessen Sie im Return-Tag im Rendering der Komponente, / am Ende des Tags einzugeben. Beispielsweise wird

geschrieben ;p> React erkennt es als zwei. Wenn ein p-Tag verwendet wird, wird ein eingebetteter JSX-Inhalt gemeldet.

3 Alle ungepaarten Tags im Rendering müssen geschlossen sein, wie zum Beispiel:
andernfalls wird ein Fehler gemeldet: eingebettet: Erwartetes entsprechendes JSX-Schließtag für

4. Eine sehr interessante Sache: Wenn ich in einer bestimmten Funktion ein bestimmtes Attribut setze, wird das Attribut nicht angezeigt Das korrekte Ergebnis wird sofort ausgedruckt. Das richtige Ergebnis liegt in der Funktion „componentDidUpdate“, das heißt, warten Sie, bis die Komponente aktualisiert ist, bevor Sie sie ausdrucken.

5. Wenn die Requisite der untergeordneten Komponente in der übergeordneten Komponente aktualisiert wird, fügen Sie diese Requisite bitte nicht als Eigenschaft in die Funktion getInitialState ein, da die Requisite bei einer Aktualisierung der Requisite nicht aktualisiert wird Eigenschaften im Bundesstaat (Sie können die Tabelle in 11 anzeigen).

6. Wenn Sie die es6-Syntax verwenden, also die Methode zum Erben von React.Component zum Erstellen von Komponenten verwenden, können Sie die Funktion getInitialState() nicht verwenden und es wird eine Warnung angezeigt: Warnung: getInitialState wurde definiert auf TodoApp, einer einfachen JavaScript-Klasse. Dies wird nur für Klassen unterstützt, die mit React.createClass erstellt wurden. Wollen Sie eine Statuseigenschaft definieren? stattdessen?

Lösung: Konstruktor festlegen

constructor(props){
  super(props);
      this.state = {
    example:&#39;example&#39;,
  }
}
Nach dem Login kopieren

Dieser Artikel endet hier (wenn Sie mehr sehen möchten, besuchen Sie die Spalte „React User Manual“ der PHP-Website, um mehr zu erfahren) Wenn Sie Fragen haben, können Sie unten eine Nachricht hinterlassen.

Das obige ist der detaillierte Inhalt vonWelche Kenntnisse sollte ich über React lernen? Zusammenfassung der Reaktionswissenspunkte (mit vollständigen Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage