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.

→
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 KomponentenlebenszyklusTeil 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: KursprojektLektion 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 VSCodeUnd hier ist die Anwendungsseite im Browser.
Anwendungsseite im BrowserAchten Sie auf die Form, in der der Wert der Ware dargestellt wird.
Lektion 23. Workshop. TODO-Anwendung. Etappe Nummer 3
→
OriginalHier 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 VSCodeEs 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 KonsoleSpä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?
