React Tutorial, Teil 12: Workshop, Phase 3 TODO-Anwendung

Im heutigen Teil der Übersetzung des React-Kurses empfehlen wir Ihnen, die praktische Aufgabe des Erstellens von Komponentensätzen mit JavaScript abzuschließen und weiter an der TODO-Anwendung zu arbeiten.

Bild

Teil 1: Kursübersicht, Gründe für die Beliebtheit von React, ReactDOM und JSX
Teil 2: Funktionskomponenten
Teil 3: Komponentendateien, Projektstruktur
Teil 4: übergeordnete und untergeordnete Komponenten
Teil 5: Beginn der Arbeit an einer TODO-Anwendung, Grundlagen des Stylings
Teil 6: Über einige Funktionen des Kurses, JSX und JavaScript
Teil 7: Inline-Stile
Teil 8: Fortsetzung der Arbeit an der TODO-Anwendung, Vertrautheit mit den Eigenschaften von Komponenten
Teil 9: Komponenteneigenschaften
Teil 10: Workshop zum Arbeiten mit Komponenteneigenschaften und Styling
Teil 11: Dynamische Markup-Generierung und Map-Arrays-Methode
Teil 12: Workshop, dritte Phase der Arbeit an einer TODO-Anwendung
Teil 13: Klassenbasierte Komponenten
Teil 14: Workshop zu klassenbasierten Komponenten, Komponentenstatus
Teil 15: Komponentengesundheitsworkshops
Teil 16: Die vierte Phase der Arbeit an einer TODO-Anwendung, die Ereignisbehandlung
Teil 17: Fünfte Phase der Arbeit an einer TODO-Anwendung, Änderung des Status von Komponenten
Teil 18: Die sechste Phase der Arbeit an einer TODO-Anwendung
Teil 19: Methoden des Komponentenlebenszyklus
Teil 20: Die erste Lektion in bedingtem Rendern
Teil 21: Zweite Lektion und Workshop zum bedingten Rendern
Teil 22: Die siebte Phase der Arbeit an einer TODO-Anwendung, bei der Daten aus externen Quellen heruntergeladen werden
Teil 23: Erste Lektion zum Arbeiten mit Formularen
Teil 24: Lektion der zweiten Form
Teil 25: Workshop zum Arbeiten mit Formularen
Teil 26: Anwendungsarchitektur, Container- / Komponentenmuster
Teil 27: Kursprojekt

Lektion 22. Workshop. Dynamische Bildung von Komponentensätzen


Original

»Job


create-react-app basierend auf dem von create-react-app generierten Standard-React-Anwendungsprojekt und unter Verwendung des Codes der folgenden vschoolProducts.js eine Anwendung, die auf der Seite eine Liste der Product anzeigt, die mit der Standard-Array-Methode .map() generiert wurden Basierend auf Daten von vschoolProducts.js .

Denken Sie daran, Instanzen der Komponente zu erstellen und ihnen das key mit einer eindeutigen Kennung zu übergeben. Andernfalls gibt das System eine Warnung aus.

Bei der Lösung des Problems können Sie die folgende Vorbereitung der Datei App.js verwenden:

 import React from "react" import productsData from "./vschoolProducts" function App() { return (   <div>         </div> ) } export default App 

Hier ist der vschoolProducts.js :

 const products = [   {       id: "1",       name: "Pencil",       price: 1,       description: "Perfect for those who can't remember things! 5/5 Highly recommend."   },   {       id: "2",       name: "Housing",       price: 0,       description: "Housing provided for out-of-state students or those who can't commute"   },   {       id: "3",       name: "Computer Rental",       price: 300,       description: "Don't have a computer? No problem!"   },   {       id: "4",       name: "Coffee",       price: 2,       description: "Wake up!"   },   {       id: "5",       name: "Snacks",       price: 0,       description: "Free snacks!"   },   {       id: "6",       name: "Rubber Duckies",       price: 3.50,       description: "To help you solve your hardest coding problems."   },   {       id: "7",       name: "Fidget Spinner",       price: 21.99,       description: "Because we like to pretend we're in high school."   },   {       id: "8",       name: "Sticker Set",       price: 14.99,       description: "To prove to other devs you know a lot."   } ] export default products 

▍Lösung


Hier ist der Code für die Datei App.js :

 import React from "react" import Product from "./Product" import productsData from "./vschoolProducts" function App() {   const productComponents = productsData.map(item => <Product key={item.id} product={item}/>)     return (       <div>           {productComponents}       </div>   ) } export default App 

Bitte beachten Sie, dass die id Eigenschaft von Objekten aus der Datendatei optional ist. Diese Eigenschaft war für uns nützlich, um das key .map() , das mithilfe der .map() -Methode für Instanzen der Product Komponente erstellt wurde.

Hier ist der Code für die Datei Product.js :

 import React from "react" function Product(props) {   return (       <div>           <h2><font color="#3AC1EF">{props.product.name}</font></h2>           <p>{props.product.price.toLocaleString("en-US", { style: "currency", currency: "USD" })} - {props.product.description}</p>       </div>   ) } export default Product 

props.product.price wir hier eine Eigenschaft ableiten, die den Preis des Produkts enthält, der in der Komponente als props.product.price , verwenden wir die Methode toLocaleString() , mit der wir die Menge des Produkts formatieren.

So sieht das Anwendungsprojekt in VSCode aus.


Anwendung in VSCode

Und hier ist die Anwendungsseite im Browser.


Anwendungsseite im Browser

Achten Sie auf die Form, in der der Wert der Ware dargestellt wird.

Lektion 23. Workshop. TODO-Anwendung. Etappe Nummer 3


Original

Hier arbeiten wir weiter an der TODO-Anwendung, die hier und hier behandelt wurde . Insbesondere werden Sie hier gebeten, Kenntnisse über die dynamische Bildung von Komponentenlisten anzuwenden, um eine von der Anwendung angezeigte Aufgabenliste zu erstellen.

»Job


todosData.js mithilfe der todosData.js , deren Inhalt unten angegeben ist, eine Liste der TodoItem Komponenten und zeigen Sie diese Liste in der App Komponente an. Beachten Sie, dass Sie den Code der TodoItem Komponente ändern müssen, damit die an sie übergebenen Eigenschaften angezeigt werden können.

Hier ist der Inhalt der Datei todosData.js :

 const todosData = [   {       id: 1,       text: "Take out the trash",       completed: true   },   {       id: 2,       text: "Grocery shopping",       completed: false   },   {       id: 3,       text: "Clean gecko tank",       completed: false   },   {       id: 4,       text: "Mow lawn",       completed: true   },   {       id: 5,       text: "Catch up on Arrested Development",       completed: false   } ] export default todosData 

▍Lösung


Hier ist der Code für die Datei App.js :

 import React from "react" import TodoItem from "./TodoItem" import todosData from "./todosData" function App() {   const todoItems = todosData.map(item => <TodoItem key={item.id} item={item}/>)     return (       <div className="todo-list">           {todoItems}       </div>   ) } export default App 

Hier ist der Code für die Datei TodoItem.js :

 import React from "react" function TodoItem(props) {   return (       <div className="todo-item">           <input type="checkbox" checked={props.item.completed}/>           <p>{props.item.text}</p>       </div>   ) } export default TodoItem 

Hier ist das Anwendungsprojekt in VSCode.


Anwendung in VSCode

Es ist zu beachten, dass wir nach Abschluss der in dieser praktischen Lektion vorgesehenen Arbeiten trotz der Tatsache, dass wir die Anwendung mit neuen Funktionen ausstatten, ihre Funktionalität stören. Insbesondere sprechen wir über den Zustand der Flaggen. Die Flags, für die die auf props.item.completed gesetzte Eigenschaft props.item.completed zum props.item.completed des props.item.completed verwendet wurde, werden überprüft. Die Flags, für die dieselbe auf false gesetzte Eigenschaft verwendet wurde, werden deaktiviert. Wenn Sie jedoch auf der Anwendungsseite auf das Flag klicken, geschieht nichts, da wir das entsprechende HTML-Element falsch konfiguriert haben. Sie können eine Warnung dazu in der Konsole sehen.


Anwendungsseite im Browser und Warnung in der Konsole

Später werden wir über Formulare sprechen und unsere Schulungsanwendung korrigieren, während wir weiter daran arbeiten.

Zusammenfassung


In dieser Lektion hatten Sie die Möglichkeit, das Erstellen von Komponentendateien, das Arbeiten mit Eigenschaften, die beim Erstellen an Komponenteninstanzen übergeben werden, und die Verwendung der Standard-JavaScript-Array-Methode .map() . Außerdem haben wir hier weiter an einer Trainingsanwendung gearbeitet. Das nächste Mal werden wir über klassenbasierte Komponenten sprechen.

Liebe Leser! Haben Sie die Technik der Verwendung der JavaScript-Array-Methode .map() zum Erstellen von Komponentensätzen beherrscht?

Source: https://habr.com/ru/post/de437988/


All Articles