React lernen: Von Anfängerkonzepten zur Erstellung einer vollständigen React-App | Zoë Davidson | Skillshare
Suchen

Playback-Geschwindigkeit


  • 0.5x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 2x

React lernen: Von Anfängerkonzepten zur Erstellung einer vollständigen React-App

teacher avatar Zoë Davidson, Software Engineer & Cinematographer

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Intro

      0:37

    • 2.

      Kursprojekt

      0:26

    • 3.

      Warum React?

      0:57

    • 4.

      Komponenten

      0:50

    • 5.

      Requisiten und Staat

      0:50

    • 6.

      React-App erstellen

      1:06

    • 7.

      Bootstrap

      0:39

    • 8.

      React-Setup

      14:38

    • 9.

      Einen Counter bauen

      16:50

    • 10.

      Den Counter verfeinern

      17:58

    • 11.

      Tests

      7:04

    • 12.

      Schlussbemerkung

      0:49

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

198

Teilnehmer:innen

5

Projekte

Über diesen Kurs

In diesem Kurs lernst du alles, was du zum Schreiben von React wissen musst, vom Anfänger bis zum Fortgeschrittenen:

  • Das React ist
  • Verwendung von Components und State
  • So erstellst du einen interaktiven Zähler

Mein Name ist Zoë, ich bin Software-Ingenieur und ehemalige Filmprofessorin. Du kannst meine Arbeit ansehen hier.

Dieser Kurs richtet sich an alle die jemals Interesse daran Kodieren zu lernen hatten oder in naher Zukunft ein technisches Interview führen möchten.  Dein Kursprojekt wird die Erstellung deines eigenen Covers mit React sein. 

Dieser Kurs enthält eine Schritt-für-Schritt Anleitung, wie du React von der Pike auf erlernst.

  • So verwenden React
  • Was eine Bibliothek unterscheidet
  • So bauen eine Komponente
  • So verwenden Sie state

Sobald du den Kurs besucht hast, hinterlasse eine Bewertung darüber, was du von ihm gehalten hast!

Ressourcen

Filmausrüstung

  1. Canon 5D IV
  2. Canon 24 - 70 f/2.8
  3. Amaran 60x - erschwinglich und leistungsstark
  4. Desview T3 Teleprompter
  5. Kleine Rig-Tischhalterung
  6. Sennheiser MKE 600
  7. Neewer Mikrofonarm
  8. Zoom H4n Pro

Entwicklungsausrüstung

  1. M1 Macbook Pro 13"
  2. Apple Magic Keyboard
  3. Logitech MX Anywhere
  4. Doppelter Laptop-Halter
  5. LG 4k 27"
  6. Ergonomischer Schreibtischstuhl - günstig
  7. Bose QC 35 II
  8. AirPods Pro
  9. Espresso-Monitor und -Standfuß (Reise) - erstaunlich

Triff deine:n Kursleiter:in

Teacher Profile Image

Zoë Davidson

Software Engineer & Cinematographer

Kursleiter:in

Hey! I'm Zoe, a software engineer, filmmaker, and former professor from Toronto, Canada. I have an MFA in Film from Howard University, and also do work as a software engineer.

In the past, I've worked for the University of the District of Columbia, the Academy of Motion Picture Arts and Sciences, Lionsgate, Huffington Post, and I'm a member of organizations like the Canadian Society of Cinematographers.

The films that I've worked on have been featured at festivals around the world, including Sundance, ABFF, Trinidad Tobago Film Festival, and CaribbeanTales.

Check out my latest work, here: zoeahdavidson.com

Vollständiges Profil ansehen

Level: All Levels

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Intro: Wissen Sie, was die beliebteste Frontend-Interview-Frage ist Es, kannst du einen Zähler bauen? Heute? Wir werden alles durchgehen, was Sie wissen müssen, um Ihr eigenes Projekt mit React zu erstellen, einschließlich der Erstellung dieses Zählers damit Sie Ihr nächstes Vorstellungsgespräch bestehen können. Hi, ich heiße Zoe. Ich bin Softwareingenieur und ehemaliger Professor , der es liebt, anderen beizubringen , wie man Programmieren lernt Ich habe Unmengen von Websites und Web-Apps mit React, CSS, HTML und anderen Technologien erstellt CSS, HTML und anderen Technologien Am Ende dieses Kurses werden Sie in der Lage sein, dies selbst zu tun . Lass uns anfangen. 2. Kursprojekt: Klassenprojekt. Das Projekt für diese Klasse besteht darin, einen voll funktionsfähigen Zähler zu erstellen , der dafür React verwendet. Sie benötigen Zugriff auf einen Computer und einen Code-Editor wie Visual Studio Code. Sie sollten auch ein gewisses Verständnis von Java-Skript sowie HTML und CSS haben. Ich hinterlasse Links zu allen Ressourcen und Ressourcen, die Sie benötigen, auf der Registerkarte Projekt und Ressourcen unten. 3. Warum reagieren?: Warum React? React wurde bei Facebook entwickelt und 2013 der Öffentlichkeit zugänglich gemacht. Es wurde ursprünglich entwickelt , um ineffiziente Seitenneuladungen und -aktualisierungen zu bewältigen , bei denen Zeitpunkt das gesamte Dom- oder Dokumentobjektmodell neu gezeichnet werden musste . Bei jedem Update behebt React dieses Problem, indem das sogenannte virtuelle Do erstellt wird, eine Darstellung des Dadurch konnte React nur die Aspekte oder Komponenten des Doms aktualisieren , die sich geändert haben, und nicht die gesamte Seite, was zu einer besseren Leistung führte React hat die Webentwicklung grundlegend verändert und ist immer noch eine der beliebtesten Bibliotheken auf dem Markt Durch die Verwendung von Komponenten können Entwickler jetzt modularen Code viel einfacher schreiben , wodurch sie viel effizienter und effektiver entwickeln viel effizienter und effektiver Andere beliebte Frameworks, die oft mit React verglichen werden, sind View und Angular. 4. Komponenten: Komponenten. Komponenten sind wiederverwendbare Codeteile, die reagieren und nutzen, um ihre Modularität aufrechtzuerhalten Stellen Sie sich sie als die Bausteine , die Entwickler verwenden, um Apps zu erstellen Eine Komponente ist ein eigenständiger, wiederverwendbarer Code, der seine eigene Funktionalität, seinen eigenen Status und seine eigene Struktur kapselt Diese Komponenten können als eine Kombination aus HTML und Javascript oder JS betrachtet werden, die in React verwendet wird Jede Komponente kann ihren eigenen Status haben, der Daten darstellt, die sich im Laufe der Zeit ändern können, und eine Reihe von Eigenschaften oder Requisiten, die es übergeordneten Komponenten ermöglichen, Daten an ihre untergeordneten Komponenten weiterzugeben So wie HTML Elemente innerhalb anderer Elemente hat, hat React Komponenten innerhalb anderer Komponenten Diese internen Komponenten werden als untergeordnete Elemente der äußeren Komponenten betrachtet. 5. Requisiten und Staat: Requisiten und Staat. Um React wirklich zu verstehen und in vollem Umfang nutzen zu können, müssen wir über Status und Eigenschaften sprechen Oder wie sie Requisiten genannt werden. Schauen wir uns eine grundlegende Komponente an. Diese Komponenten sind eigentlich ihre Basis, nur Funktionen. Sie können Argumente annehmen, sie können Variablen ändern und sie können einen Wert zurückgeben. Einfach ausgedrückt können wir uns Requisiten als die Argumente vorstellen , die an unsere Funktion übergeben werden , wenn sie state heißt, als lokale Variablen, die nur innerhalb unserer gegebenen Komponente existieren Wir werden diese Definition später näher erläutern, aber es ist wichtig, zuerst zu verstehen, wie sie funktioniert 6. React-App erstellen: React-App erstellen. Es gibt verschiedene Möglichkeiten , eine React-App einzurichten. In diesem Kurs gehen wir auf die beliebtesten ein. Die ursprüngliche Methode, eine React-App einzurichten war die Verwendung von Create React App (CRA). Da React eine Bibliothek und kein voll funktionsfähiges Framework ist , es mehrere andere Teile wie Build-Tools, damit es vollständig funktioniert benötigt es mehrere andere Teile wie Build-Tools, damit es vollständig funktioniert. Create React-App wurde ebenfalls von Facebook entwickelt, um einen Großteil dieser Komplexität zu beseitigen und sie in einen einfachen, aber leistungsstarken Befehl umzuwandeln . Durch die Verwendung der Create React-App ersparen Sie sich stundenlange Kopfschmerzen , wenn Sie zum ersten Mal versuchen, ein neues React-Projekt zu starten . Um Create React App auszuführen, geben Sie einfach px, create react app, gefolgt vom Namen Ihrer App in das Terminal ein und drücken Sie die Eingabetaste. Nach ein paar Minuten sind Sie startklar. Sie können den Befehl selbst in Ihrem Terminal ausführen, wenn Sie sehen möchten, wie die Create React-App aussieht. Wir werden es in unserem Projekt verwenden. Die Verwendung der Create React App ist für ein kleines Projekt wie diesen Zähler in Ordnung . Ich möchte Sie jedoch davor warnen, damit etwas Größeres zu bauen , da es nicht mehr gewartet wird. 7. Bootstrap: Bootstrap. Bootstrap ist eines der beliebtesten CSS-Frameworks für die Entwicklung responsiver Websites Verwendung von Open Source ist kostenlos und eignet sich besonders gut zum Erstellen mobiler Websites, die zuerst reagieren Bootstrap basiert auf HTML, CSS und Javascript. Und bietet tatsächlich eine Reihe von vorgefertigten Komponenten, Vorlagen und Stilen, mit denen Entwickler schnell erstellen und iterieren Es ist auch so konzipiert, dass es in allen Browsern funktioniert, was hervorragend ist, um sicherzustellen, dass Ihre App für alle Zielgruppen korrekt angezeigt wird Wir werden heute React Bootstrap verwenden, um unseren Entwicklungsprozess zu beschleunigen 8. React-Setup: Ordnung, jetzt, wo wir ein bisschen mehr über React wissen, wollen wir weitermachen und unseren eigenen Zähler aufbauen . Wie ich bereits erwähnt habe, ist es wirklich wichtig zu verstehen, wie man baut, , zu verstehen, wie man baut, denn das ist eines der Dinge, die Sie in einigen Vorstellungsgesprächen gefragt werden und ob Sie sich dafür entscheiden die Karriere eines Frontend-Entwicklers fortzusetzen. Lassen Sie uns also loslegen. Also genau hier kannst du sehen, wie ein fertiger Zähler aussehen könnte. Es gibt nicht viele Stile und Designs, aber es ist ziemlich einfach. Aber was die Logik angeht, ist es funktional. Sie würden von Ihnen erwarten , etwas zu erstellen, das eine Zahl anzeigt und Sie diese dann ergänzen können. Sie können also eine hinzufügen oder eine davon subtrahieren. Ziemlich einfach, aber lassen Sie uns darauf eingehen, wie wir das tatsächlich bauen können Wenn wir zu Visual Studio Code wechseln, möchten wir als Erstes eine React-App erstellen. Wie ich bereits erwähnt habe, können wir die Create React-App für dieses Projekt verwenden , da es so klein ist. Aber in Zukunft werden wir über die Verwendung von Lösungen wie sprechen . Als Nächstes starten wir unsere Create React-App, PX createapp Und dann werden wir es Counter nennen. Das wird ein paar Minuten dauern, bis es losgeht. Lassen Sie uns wieder hineinspringen, sobald der Bau fertig ist. Jetzt, da unsere Create React-App den Ordner endlich erstellt hat, wir weitermachen und anfangen, damit zu arbeiten. Ich ändere das Verzeichnis in den Ordner. Und los geht's, wir haben es geöffnet. Ordnung, also lass uns weitermachen und das öffnen und sehen, mit welcher Art von Dateien und Ordnern wir arbeiten. Auf der linken Seite sehen Sie also, dass wir eine Reihe verschiedener Ordner haben , die im Grunde genommen durch die Verwendung der Create React-App für uns erstellt wurden . Wie ich bereits erwähnt habe, ist React eine Bibliothek und kein Framework. Es müssen also mehrere andere Build-Tools installiert werden, damit es ordnungsgemäß funktioniert. Wenn wir uns also das Read Me ansehen, erfahren wir ein bisschen mehr darüber, wie man mit der Create, React App arbeitet , welche Dinge wir tun können, welche Befehle wir ausführen können. Wenn Sie in der Vergangenheit jemals mit NPM oder Note gearbeitet haben, sollten Sie mit einigen dieser Befehle vertraut sein Falls nicht, lassen Sie uns kurz wissen ob Sie in der Vergangenheit jemals mit Node oder NPM gearbeitet haben, sollten Sie mit einigen dieser Befehle vertraut sein Schauen wir uns die an, die React-App-Angebote für uns erstellen React-App-Angebote für uns Wir haben also NPM Start , das die App im Entwicklungsmodus auf lokalen Host 3.000 ausführt. Lokaler Host 3.000 ist der bevorzugte Ort für die Ausführung der App Dies basiert nur auf einer Konfiguration , die vom Create React-Team festgelegt wurde Dann haben Sie einen weiteren Befehl namens NPM test. Auf diese Weise können Sie Tests in Ihrer React-App ausführen, und wir werden uns diese Tests in einer Sekunde ansehen Wir haben auch eine Produktionsrechnung , mit der ein produktionsoptimierter Build erstellt werden soll. Wir haben Eject, das ich persönlich nicht oft benutzt habe, und dann haben wir ein bisschen mehr darüber, was React ist, wie es gebaut wurde, wie man es richtig benutzt, solche Dinge Deshalb ermutige ich Sie, sich das durchzulesen. Lesen Sie mich, wenn Sie es noch nicht gelesen Es enthält einige Informationen , die nützlich sein könnten. Wie ich bereits erwähnt habe, wird Create React App derzeit nicht für die Zukunft beibehalten. Es kann also sein, dass die Informationen zum Zeitpunkt, zu dem Sie sich dieses Video ansehen, aktuell sind oder auch nicht . In Ordnung, jetzt schauen wir uns das Paket Json an. Also nochmal, wenn Sie schon einmal mit NPM oder Jason gearbeitet haben, Sie vielleicht zumindest mit dem Format vertraut ist sind Sie vielleicht zumindest mit dem Format vertraut und wissen, dass dies quasi eine der notwendigen Dateien wenn Sie ein Projekt erstellen Die Package Dot Json-Datei enthält also verschiedene Elemente , die uns helfen, unser Projekt zu identifizieren und zu verstehen , mit welchen Versionen der verschiedenen Abhängigkeiten wir arbeiten , die wir installiert haben Also oben steht der Name unseres Paketzählers. Wir können das jederzeit ändern, wenn es uns nicht gefällt, wir haben unsere eigene Version, also nur unsere erste Version, egal ob sie privat ist oder nicht. Und dann die Abhängigkeiten, die wir haben und die bereits installiert sind. Wir haben also die Testbibliothek, wir haben React, React usw. Jetzt haben wir unsere Skripte. Die Skripte, die wir gerade in der Readme-Datei durchgesehen haben. Ähm, also im Grunde haben sie hier ein Skript erstellt , das NPM-Start ist Aber was NPM Start wirklich ausführt, ist der Start von React-Skripten. Es ist also eine Art Verkürzung eines längeren Befehls, nur der Einfachheit halber als Entwickler Wir haben dann einige ES-Link-Konfigurationen. Es Link ist mit der Create React App vorinstalliert. Wir haben eine Liste der Browser , mit denen wir in der Produktion und auch in der Entwicklung arbeiten möchten Produktion und auch in . Das ist so ziemlich alles. Das Paket Jason ist in Create React App nicht sehr aufwändig. Es gibt ein paar wichtige Dinge , mit denen wir arbeiten müssen. Aber es wird je nach Größe Ihres Projekts, an dem Sie arbeiten, wachsen je nach Größe Ihres Projekts, an dem . Und wenn wir neue Dinge installieren. Apropos Installation neuer Dinge, wenn wir schon hier sind, lasst uns weitermachen und installieren, reagieren, Bootstrap und schauen, wie es unsere Pakete aktualisiert Wenn wir hier zurück zum Terminal gehen, geben wir NPM install Und wir werden zwei Pakete installieren. Eines ist React Bootstrap und das andere ist nur Bootstrap selbst Diese beiden Pakete zusammen ermöglichen es uns, mit der vollen Bootstrap-Funktionalität zu arbeiten , die uns in React zur Verfügung steht Wir werden einfach hier sitzen und warten, bis das installiert ist. Ich glaube, wir brauchen noch eine Codezeile, also lassen Sie mich weitermachen und diese aus der Bootstraps-Dokumentation holen diese aus der Bootstraps-Dokumentation holen Wenn wir zu Bootstrap React gehen und auf Getting Started klicken, wollen wir auch importieren, ja, siehe hier unten, wo Stylesheets und Wir wollen das in eine unserer Dateien importieren. Wenn wir untergehen, werde ich das kopieren. Und wenn wir dann zu dieser Datei kommen , werde ich sicherstellen, dass sie importiert wird. In Ordnung, zurück zu unserem Paket A Jason. Sie werden hier sehen, dass sich zwei Dinge geändert haben. Also haben wir in unseren Unterabhängigkeiten Bootstrap installiert , das installiert wurde Und reagiere Bootstrap. Das sind also die beiden, um deren Installation wir gerade gebeten haben Installation wir gerade gebeten Wir haben gerade, weißt du, die Anfrage bei NPM gestellt und sie haben uns dafür korrekt installiert Wie Sie hier unten sehen können, gibt es auch mehrere Sicherheitslücken Dies ist wiederum darauf zurückzuführen, das Projekt nicht gewartet wird. Aber wie ich bereits erwähnt habe, ist dies eine der einfachsten Möglichkeiten, wenn Sie nur versuchen, mit React zu beginnen und zu lernen, wie man es benutzt. Create React App ist wirklich eine einfache Methode, um zu lernen, wie man React benutzt. Ich würde sagen, es gibt eine sehr geringere Lernkurve für einige der anderen Optionen, die derzeit verfügbar sind. Ordnung, also lassen Sie uns weitermachen und uns die anderen Dateien hier ansehen. Also haben wir einen Git-Ignore-Modus. Wenn Sie also schon einmal mit Git gearbeitet haben, wissen Sie, dass Git ein Versionskontrollsystem ist , mit dem Sie Ihre Dateien und verschiedene Versionen Ihrer Dateien speichern können , falls Sie jemals zu einer früheren Version einer Datei, mit der Sie arbeiten, zurückkehren oder zu einer früheren Version zurückkehren müssen zurückkehren oder zu Datei, mit der Sie arbeiten, zurückkehren oder zu einer früheren Version Aber in unserem Git-Ignore-Modus werden wir alle Dateien in den Ordnern sehen, die wir grundsätzlich so vordefiniert haben , dass nicht festgeschrieben werden, wenn wir unseren Code pushen, potenziell auf Github, also unseren Node-Module-Ordner hier. Und das liegt daran, dass Node Modules ein sehr großer Ordner ist, eine Menge Daten aus verschiedenen Abhängigkeiten enthält . Wenn wir sie pushen, wenn wir sie zu unserem Github hinzufügen würden , würden wir sie quasi massenhaft anhäufen und aufblähen Also wollen wir das nicht wirklich vorantreiben. Das ist etwas, das auf der Grundlage des Pakets auf Jason-Versionen jedes Mal installiert werden kann Grundlage des Pakets auf Jason-Versionen , wenn wir unsere Datei erneut klonen oder jemand anderes unsere Arbeit klont. Wir haben auch einige andere Teile, darunter die Berichterstattung in den Build-Ordnern und einige andere Dateien In Ordnung, lassen Sie uns zu den guten Dingen übergehen. Also wir haben hier zwei Ordner, wir haben public und wir haben Source. Öffentlich ist also der Ort, an dem all unsere Bilder und Dinge, die gerade in unserer App gezeigt werden, unser Leben gerade ist. Sowie unsere HTML-Datei mit Indexpunkt. Und dann haben wir unsere Quelle , die auch eine ganze Reihe anderer Dateien enthält. Lassen Sie uns also in diese beiden eintauchen. Und was wir tun können, um wirklich eine gute Vorstellung davon zu bekommen , wie diese beiden funktionieren, ist, indem wir unsere App starten. Denken Sie also daran, dass ich im Paket dotson foul erwähnt habe, dass es ein Skript namens NPM Start gibt Lassen Sie uns das im Terminal ausführen und sehen, was es anzeigt Also geben wir NPM Start ein. Wir drücken die Eingabetaste und geben uns eine Sekunde. Starten Sie den Entwicklungsserver. Und richtig, gut, wir sind startklar. Wir haben dieses sich drehende React-Symbol. Und dann heißt es: Quell-Apps bearbeiten und sicher laden. Und dann lerne React, das auf die S-Dokumentation verweist. Fantastisch. Zumindest wissen wir , dass unsere App funktioniert. Gehen wir also zurück zu unseren Dateien und sehen wir uns an, wo all das Zeug lebt. Und was wir tun werden, wir werden dieses Terminalfenster geöffnet lassen , damit unsere App weiterhin im Hintergrund läuft. Wenn wir also zu unserem öffentlichen Ordner gehen, normalerweise in HTML, werden all unsere Informationen in der HTML-Datei gespeichert. Wenn wir das also öffnen, das war ein normales HTML-Projekt, würden wir erwarten, all diese Informationen zu finden, all das Zeug, das wir gerade dort gesehen haben, in dieser Datei. Aber wenn wir hier hinschauen, ist es nicht da. Wir haben hier unser Hauptelement und hier viele Metadaten. Dinge , die wir ändern können. Wir können den Namen und den Inhalt hier ändern. Wenn wir jedoch nach unten zum Hauptteil scrollen, werden Sie feststellen, dass all die Informationen, die wir gerade in unserem Browser hatten, nicht verfügbar sind. Sie werden sehen, dass es im Körper nur zwei Elemente gibt. Das No-Skript, das Leuten, die kein Java Script aktiviert haben, mitteilt Java Script aktiviert haben , dass sie es benötigen , um es auszuführen. Und dann gibt es ein einzelnes Div, das leer ist, was wirklich interessant ist Woher kommt unser Projekt eigentlich? Wenn wir dann ein komplett leeres Div haben, macht das nicht wirklich Sinn denn wenn wir zur Seite zurückkehren, sehen wir, dass wir all diese Informationen haben. Ich meine, wir haben Text und wir haben ein rotierendes Symbol und wir haben einen Link. Offensichtlich muss das irgendwo leben. Okay, nun, wenn wir zu unserem Div zurückkehren, schauen wir es uns genauer an. Wir sehen, dass es die ID Root hat. Das heißt also, dass vielleicht irgendwo auf dem Weg darauf gezielt wird und dass Root etwas bedeutet, oder? Wenn Sie also das vorherige Video gesehen haben, das ich über Java-Skript habe, werden Sie das verstehen. werden Sie sich wahrscheinlich erinnern. Sie werden sich wahrscheinlich daran erinnern, dass es eine Methode namens Get Element by ID gibt. Gehen wir also zu unserer JS-Datei mit dem Indexpunkt auf der linken Seite. Und sieh dir das an. Wenn wir uns also unsere Indexpunkt-JS-Datei ansehen, haben wir eine ganze Reihe von Importen. Wir sind jetzt also in der Javascript-Welt, oder? Wir sind sozusagen von HTML zu vollständigem Javascript übergegangen Und wenn wir sehen, dass es nicht ganz Javascript ist, wie wir es gewohnt sind, ich meine, Sie sehen, wir haben diese Strukturen, die einem Div-Element ähneln Gehen wir also Zeile für Zeile runter und schauen, was alles ist. Also haben wir React aus React importiert. Auch hier arbeite ich mit NPM. Wir haben das Paket namens React installiert , diese Bibliothek namens React, und wir haben jetzt die Instanz von React daraus importiert Wir haben Import React, Import Index CSS, was nur die CSS-Datei ist. App importieren, das ist eine weitere Datei hier unten. Und dann importieren Sie den Bericht Web Vitals. Worauf ich wirklich achten möchte, ist Zeile 7 hier, wo es heißt, dass konstante Wurzel gleich React Dom Punkt Create In dieser Erstellungsroute heißt es dann Dokument Punkt für Element für ID-Route abrufen Offensichtlich passiert hier etwas, wo wir das Stammelement bekommen, wir bekommen dieses Div und jetzt erstellen wir eine Art Route, die auf diesem Element basiert. Also haben wir das hier gemacht, wir haben eine Route auf dem React erstellt und wir haben diese variable Route erstellt, richtig? Dann sagen wir Root-Render. Und darin rendern wir React jetzt im strikten Modus. Und dann rendern wir darin diese App, diese App-Sache. Basierend auf dem, was wir zuvor gelesen haben, war die App nur eine Javascript-Datei. Aber beide befinden sich in dieser seltsamen Elementtypstruktur, oder? Das ist also diese JSX-Sache, über die wir gesprochen haben. Dieses Javascript ist sozusagen mit HTML kombiniert, was es uns ermöglicht, HTML innerhalb von Javascript zu schreiben Lassen Sie uns also weitermachen und uns mit Apps befassen. Apps sehen aus wie eine ziemlich normale Javascript-Datei, aber sie enthält diese Kombination aus JS-HTML und Javascript. Wie Sie sehen können, handelt es sich lediglich um eine reguläre Funktion namens App, dieses HTML-Element zurückgibt. Da ist es wirklich ein Meister der Intelligenz. Was das ist, ist eigentlich eine Komponente. Diese Dinge, über die wir zuvor gesprochen haben. Komponenten, die ihr eigenes Display und ihre eigene Logik haben und alles App enthalten ist, genau hier für uns ist diese Komponente. Wenn wir das nun Zeile für Zeile durchgehen, werden wir sehen, dass es ein Logo von Logo Dog importiert, aber das Logo von Punkt Logo, Punkt Sg, das sich im selben Quellordner befindet. Es importiert Apps, das ist diese Style-Datei. Und dann erstellt es diese Funktion namens App und exportiert sie dann unten. Und dann importiert es sie in diese Index-JS-Datei. Richtig? In Apps geben wir ein Div zurück , das eine ganze Reihe von Elementen enthält. Es hat also ein Div mit einer Klasse amepPhaderImageLogoitcedeImageLogoI'm Klasse amepPhaderImageLogoitcedeImageLogoI'm denke, das ist Ich denke, das ist das React-Logo, über das wir zuvor gesprochen haben Und dann haben wir die Codezeile, die wir gesehen haben. Wir haben diese Textzeile, die wir gesehen haben. Da steht es, Quelltext Slash App Dogs und speichern, um neu zu laden. Und dann steht hier unten Learn, React. Wenn wir jetzt wieder hierher gehen, ist das genau das, was wir haben. Wir haben unser Logo, wir haben Bearbeitungs- Quell-Apps zum Ablegen und Speichern zum erneuten Laden. Und wir haben gelernt, zu reagieren Also haben wir endlich den Ort gefunden, an dem all diese Informationen gelebt haben, oder? Also das Verständnis reagiert ein bisschen mehr. Und wenn wir die Struktur verstehen, haben wir diese größere JS-Datei mit Indexpunkt, die eigentlich all unsere Informationen enthält, oder? Im Grunde ist es der Ort, an dem sich alles anhäuft. Aber innerhalb des Index gibt es App-Apps, in denen die Informationen, die Logik, die wir tatsächlich anzeigen werden , wirklich lebendig Und jetzt, bevor ich vergesse, wer wir sind, da wir in Index Dogs sind, damit unser React-Bootstrap ausgeführt werden kann, wenn Sie sich erinnern, müssen wir sicherstellen, dass wir den Bootstrap oben in der Datei importieren Cool. Wir sollten jetzt startklar sein. Ordnung, jetzt , wo wir die Struktur unserer App ein bisschen besser verstehen, sollten wir weitermachen und mit Apps arbeiten und mit dem Aufbau unserer Komponenten beginnen. 9. Aufbau eines Counter: Dies ist ein älterer Komponentenstil, den wir umwandeln eine sogenannte Pfeilfunktionskomponente umwandeln werden. Arrow-Funktionskomponenten sind einfach eine syntaktisch sauberere Methode , Komponenten zu schreiben und zu erstellen Das ist nicht unbedingt notwendig, aber ich werde es tun, weil es eine gute Praxis ist, zu wissen, wie das geht, und Ihnen zu zeigen, wie das Wenn wir weitermachen, werden wir das tatsächlich ändern. Es heißt also, dass konstant App gleich Pfeil ist, und dann drücken wir einfach auf Safe Ordnung, und wir haben es gerade in eine Pfeilfunktionskomponente umgewandelt es gerade in eine Pfeilfunktionskomponente Fantastisch. Wir sind schon ein bisschen moderner, wenn wir uns unsere App hier ansehen. Wenn wir uns Quell-Apps ansehen, brauchen wir wirklich nicht viel davon oder etwas davon. Um ehrlich zu sein, was wir erstellen werden, ist der Zähler eigentlich nur eine einzelne Seite mit ein paar Elementen Das meiste davon können wir loswerden. Ich denke, eine Sache, die wir hier tun können, ist einfach alles zu löschen , was in der App ist. Wir behalten die Gesamt-ID für die App, aber wir löschen alles , was wir nicht verwenden, und speichern es. Ordnung, und jetzt haben wir unsere leere App, und wenn Sie sehen, haben wir nur eine einfache weiße Seite , und genau so wollen wir anfangen. Wenn Sie ein neues Create React-App-Projekt starten würden, würde ich Ihnen diese Schritte empfehlen, oder? Du bekommst dein Projekt, du bereinigst es, du installierst die Pakete, die du brauchst, und dann machst du weiter und fängst an, damit zu arbeiten. Ordnung, in Zukunft gibt es also noch ein paar andere bewährte Methoden, die wir bei der Arbeit mit React anwenden möchten . Also als Erstes in unserem Quellordner einen wir in unserem Quellordner einen weiteren Ordner namens Components erstellen. Der Grund, warum wir diese Komponente erstellt haben, ist dass sich die Anzahl kleinerer Dateien sehr schnell anhäufen wird, insbesondere wenn Sie an größeren Projekten arbeiten die Anzahl kleinerer Dateien . Und es könnte sehr unhandlich werden, wenn sie sich einfach alle in Ihrem Quellordner befinden Und es ist nicht die beste Idee , sie alle einfach überall zu haben Es wird sehr schwierig, zu debuggen und zu definieren, wonach Sie suchen sich bewährt, separate Ordner zu erstellen , die darauf basieren , an welchen Funktionen Sie gerade arbeiten, um die Dinge in unserem Komponentenordner sauber und einfach zu halten in unserem Komponentenordner sauber und einfach Lassen Sie uns nun einige der anderen Komponenten ausarbeiten einige der anderen Komponenten ausarbeiten , die wir benötigen werden Wenn ich eine neue Datei schreibe, anklicke und erstelle, wissen wir, dass wir einen Zähler erstellen Beginnen wir also damit, einen zu erstellen, auf dem Counter Counter Jsx Enter steht Counter Counter Jsx Enter Fantastisch, wir haben unsere erste JSX-Datei erstellt. Als Nächstes möchten wir nun unsere Counter-Komponente erstellen Jetzt gibt es zwei Möglichkeiten, wie Sie das tun können. Es gibt quasi Möglichkeiten zur automatischen Vervollständigung, oder es gibt manuelle Möglichkeiten, dies zu tun Wenn Sie also die Erweiterung installiert haben, können Sie R, A, FCE, also S seven snippets, die ES 7 eingeben , und react snippets ist die Erweiterung, die Sie installieren möchten, wenn Sie installieren möchten, wenn Sie Und das wird eigentlich nur dazu führen, diese Komponente für uns auszuarbeiten auszuarbeiten Also werden wir die Eingabetaste drücken, damit wir sehen können, wie es aussieht. Dann machen wir weiter und bauen es manuell aus. Wenn wir also die Eingabetaste drücken, werden Sie feststellen, dass es tatsächlich die ganze schwere Arbeit für uns erledigt. Es importiert, reagiert für uns. Es erzeugt ein Element namens Counter. Es gibt ein Element in Klammern zurück, das bereits einen Dave enthält. Und es heißt Counter und exportiert es schon für uns. Das ist eine wirklich tolle Möglichkeit , alles manuell zu erledigen. Wir werden diesen verwenden, um alles zu erledigen, ohne es manuell eingeben zu müssen. Das loswerden. Wenn wir es wieder selbst machen, beeinflussen wir einfach durch React. Und dann würden wir weitermachen und einen Gegenzähler einrichten. Eine weitere Sache mit React-Komponenten ist, dass der erste Buchstabe der Komponente immer groß geschrieben werden muss. Das ist nur ein Teil der Syntax, die erforderlich ist. Cons counter entspricht unserer Funktion, und dann geben wir ein Div zurück, das Counter sagt In Ordnung, und das ist alles, was wir im Moment haben. Und dann werden wir auch den Standardzähler exportieren. Ordnung, also los geht's. Wir sind startklar. Wir haben unseren Zähler, wir haben unsere Zählerkomponente erstellt und, weißt du, es ist startklar, aber wenn wir auf unserer Seite nachschauen, wird sie nicht angezeigt, oder? Weil niemand weiß, dass der Zähler existiert. Im Moment lebt der Zähler nur in seinem eigenen Komponentenordner, in seiner eigenen kleinen Datei, und er tut nichts. Damit andere Leute wissen, dass er existiert, müssen wir ihn in welche Datei importieren? Unsere App-Datei, weil die App-Datei eine Datei ist, die gerade angezeigt wird. Gehen wir also zurück zur App und dann importieren wir den Zähler. Und eine wirklich coole Sache ist, dass wir VS-Code auch automatisch importieren können VS-Code auch automatisch importieren eine gewisse Intelligenz enthält Wenn wir also mit dem eingeben. Die offene spitze Klammer und dann der Name der Komponente werden uns tatsächlich dazu veranlassen, sie einfach aus unserem Komponentenhalter zu importieren. Es ist also sehr praktisch, wenn wir ein paar verschiedene Komponenten importieren müssen oder, Sie wissen schon, ohne sie importieren und dann in die Datei übernehmen zu müssen . Es ist einfach eine sehr schnelle, intelligente Art, damit zu arbeiten. Und das Letzte, woran wir uns jetzt erinnern möchten, ist, dass, wenn unser Zähler oder unsere Komponente keine untergeordneten Elemente hat, wir sie sofort schließen wollen. Wir wollen, dass es ein selbstschließendes Element ist, also so, Tops wie das. Perfekt. Also, aber wie sieht es aus, Kinder zu haben? Richtig, wie Sie jetzt sehen können, ist Counter eine App, die keine Kinder hat, aber wenn wir wollten, dass es eine App ist, die Kinder aufnimmt, könnten wir sie immer wie ein normales HTML-Element und dann die Kinder hinzufügen. Richtig. Und es würde genauso funktionieren. Das ist also diese flippige Kombination aus Java-Skript und HTML-Inaktivität Fantastisch, also lass uns den zweiten Zähler loswerden. Wir brauchen ihn eigentlich nicht und fangen wir an, von unseren Zählerdateien aus an unserer App zu arbeiten. Wir sind vorerst mit Apps fertig. Wir benötigen unseren Index ML im Moment nicht , es sei denn, wir möchten einige der Metadaten ändern. Wir werden uns nur auf Zähler konzentrieren. In Ordnung, wir haben also unseren Zähler. Wir haben ein Div und alles, was da steht, ist Counter. Und wenn wir auf unserer Seite genau hier nachschauen, werden wir sehen, dass dort Counter steht, sodass wir wissen, dass wir es richtig angeschlossen haben Wenn wir jetzt zu unserer Seite zurückkehren, müssen wir darüber nachdenken, was die Elemente waren, die in dem ursprünglichen Design enthalten waren, oder? Wir hatten diese Zahl, wir hatten einen roten Knopf in einem grünen Knopf oder ein Plus und ein Minus, aber sie müssen nicht rot und grün sein. Wir wollen also sicherstellen, dass wir all diese Elemente berücksichtigen, oder? In Ordnung, also lasst uns weitermachen und anfangen, das auszuarbeiten. Also, in diesem Div, das ich erstellen möchte, machen wir, machen wir es zu einem H-Eins für die Zahl. Also fangen wir bei Null an und speichern das einfach. Und dann werden wir darunter die beiden Schaltflächen erstellen. Und anstatt es manuell zu tun oder manuell zu stylen, können wir React Bootstrap verwenden , um sie etwas dynamischer zu gestalten Wir werden den Button von React Bootstrap verwenden. Wie Sie sehen können, gibt es uns auch die Informationen und fordert uns auf, sie automatisch zu importieren. Wir werden diese Schaltfläche hinzufügen. Wir können eine sogenannte Variante verwenden . React Bootstrap gibt uns eine Option, eine Eigenschaft namens Varianz Bei diesen Varianten können wir eigentlich einfach einen Namen verwenden, wie eine Eigenschaft, die vordefiniert wurde, ähnlich wie bei Attributen in HTML, und ihr bestimmte Stile geben Daher gibt es zwei Varianten, mit denen wir heute arbeiten wollen Eine heißt Success. Das werden wir schließen. Und dann wird das unser Plusknopf sein. Und dann wird der andere sein, ich glaube, es ist gefährlich, aber ja, wir nehmen unseren Button, kopieren ihn, fügen ihn ein. Wir gehen, ich glaube, das nennt man Gefahr. Wir tippen die zweite ein und ändern sie auf minus eins. Schauen wir uns also unsere Seite an und sehen, ob es gut funktioniert hat. Wir sind mit dem Design schon zu 90% fertig. Wir haben also unseren grünen Knopf, der plus eins ist, und unseren roten Knopf , der minus eins ist. Also startklar. Aber eine weitere Sache, die ich ein wenig korrigieren möchte , ist, wo das angezeigt wird. Weil es gerade sehr weit oben auf der Seite steht. Nicht wirklich ideal, um es sich richtig anzusehen. Also wollen wir es einfach auf der Seite nach unten drücken, nur um es zu tun. Also die Art und Weise, wie wir das wieder machen werden, ist nur, unser Styling zu reparieren, oder? Also, wenn wir hier zu unserem Gegenelement gehen, können wir tatsächlich einen gewissen Rand draufsetzen , nur um uns ein bisschen mehr Platz zu verschaffen Wir können also entweder eine CSS-Datei erstellen , zu der wir all unsere Styles hinzufügen können, oder wir könnten Inline-CSS verwenden Nun, Inline-CSS ist etwas, das im Grunde das ist, was es sagt Es ermöglicht uns, die Stile buchstäblich in dieselbe Zeile zu schreiben. Es ermöglicht uns, die Stile buchstäblich in derselben Zeile wie unser HTML zu schreiben , was ich ziemlich cool finde. Sie haben es vielleicht schon einmal ein- oder zweimal in Ihrem HTML verwendet , aber es ist viel üblicher, wenn Sie mit einem React arbeiten , weil alles viel stärker unterteilt ist. Wenn wir also unseren Stil hier zu unserem Div hinzufügen wollen, wir einfach STYLE Und dann würden wir zwei geschweifte Klammern verwenden, um die Dynamik des Inline-Stylings Also würden wir etwas Spielraum hinzufügen wollen. Geben wir ihm einfach einen Gesamtspielraum von vier Ram. Und spar dir das, wenn wir wieder hierher gehen, toll, wir haben ein bisschen mehr Wurzeln. Ich werde ein bisschen mehr Abstand hinzufügen , vielleicht rechts neben unserer grünen Schaltfläche hier. Also lasst uns das machen, lasst uns dieselbe Stileigenschaft hinzufügen und wir machen den Rand, richtig. Nochmals, eine weitere wirklich interessante Sache über React, oder? In HTML würdest du Margin eingeben , oder? Aber weil wir mit Javascript arbeiten, wollen wir eigentlich Camel Case verwenden Außerdem wird es keine Bindestriche geben, wenn wir unser CSS und JX eingeben Wir machen Margin, oder? Und dann geben wir erneut eine Zeichenfolge ein, wie hoch unser Rand sein soll. Das werde ich mir sparen. Perfekt. In Ordnung, und wir haben da ein bisschen Platz. Und dann fügen wir einfach ein kleines Leerzeichen unter der Kopfzeile hinzu. Und wir sollten gut sein. Also machen wir dasselbe noch einmal. Stil, gleicher Rand, Boden. Und dann bauen wir zwei Rampen. Wir schauen dort nach, ich denke wir passen ziemlich gut zum Styling. Wir könnten immer noch viel mehr damit machen, aber normalerweise werden sie dich in einem Interview nach diesem Punkt nicht mehr fragen , was das Styling angeht. Lassen Sie uns also mit der Logik beginnen und anfangen, daran zu arbeiten , dies tatsächlich zu einem funktionierenden Zähler zu machen. Okay, das nächste, was wir jetzt tun wollen , da wir mit unseren grundlegenden Stilen fertig sind, ist, an unserer eigentlichen Logik zu arbeiten, unserer Darstellung von Logik und ähnlichen Dingen Also, wenn du dich erinnerst, wir haben diese Null, oder? Und wenn wir die Plus-Taste und die Minus-Taste drücken, wollen wir, dass etwas passiert. Nun, wenn wir uns aus unserem Java-Skript erinnern, benötigen wir zum Beispiel eine Onclick-Funktion oder, Sie wissen schon, etwas, das in dieser Onclick-Funktion übergeben wird damit etwas tatsächlich ausgeführt wird, Lassen Sie uns also weitermachen und damit beginnen, das auf reagierende Weise zu implementieren Also, wie ich bereits erwähnt habe, hat React dieses Ding namens State, oder? Staat ist also buchstäblich der gegebene Status von allem, was vor sich geht. Der gegebene Zustand dessen, was innerhalb einer Komponente passiert. Es gibt also eine Möglichkeit, tatsächlich mit dem Zustand zu interagieren , die wir speziell mit React verwenden werden. Das Konzept des Zustands ist zunächst etwas abstrakt, aber es wird viel konkreter, wenn wir damit arbeiten. Also das Erste, was ich tun möchte, richtig, anstatt dass diese Zahl Null ist, wollen wir ein bisschen dynamischer sein, oder? Also werde ich eine Variable namens count equals zero erstellen namens count equals zero Also lass uns damit beginnen, das durch count zu ersetzen, richtig? Nett und einfach. Bisher nichts allzu Verrücktes. Also, wenn wir hier nachschauen, ist die Anzahl gleich Null geblieben. Gut, kreuzen Sie an. Aber jetzt, wo wir count in eine Variable geändert haben, können wir jetzt etwas dynamischer damit arbeiten , oder? Wie ich bereits erwähnt habe, wollen wir dieses Ding namens State verwenden. React hat auch dieses Ding namens Hooks, oder? Hooks wurden vor einigen Jahren in React eingeführt , um die Verwendung von State innerhalb eines Elements erheblich zu vereinfachen. Davor konnte State in einem Element nicht wirklich so verwendet werden , wie wir es heute verwenden. Was wir also tun wollen , um state zu verwenden, ist, tatsächlich einen Hook zu importieren. Und was ein Hook ist, ist wirklich nur eine einfache Komponente. Das ist es, was Hook ist, ist wirklich nur eine weitere Funktion , die sozusagen wegextrahiert wurde und wir importieren nur ihre Funktionalität, um damit zu arbeiten. In Ordnung, also lasst uns den gebrauchten Zustand aus React importieren. Großartig, jetzt, wo wir State verwendet haben, wir die Art und Weise ändern, wie wir mit der Variablenzahl arbeiten, oder? Und ich weiß, dass du gut darüber nachdenkst, könnten wir nicht einfach eine Funktion aufrufen und es mit einem Klick machen und so weiter, und so weiter Es gibt einen besseren Weg, das mit dem React zu machen, wenn wir den Status verwenden, da ist die eigentliche Variable selbst Dann gibt es ein Set, etwas, das als Setter bezeichnet wird es uns ermöglicht, den Wert dieser Variablen festzulegen Wir können das nun über eine bestimmte Syntax initialisieren über eine bestimmte Syntax Wir setzen unsere eigentliche Variable in eckige Klammern, das ist unsere initialisierte Variable und dann setzen wir eine gemeinsame Variable daneben Und dann besteht die typische Konvention, wie wir das schreiben, darin, set vor den Namen der Variablen zu setzen vor den Namen der Variablen Wenn unser Variablenname count ist, verwenden wir set count, damit das unser Setter Und dann setzen wir den Use-Status ein, wenn es um die Handlung geht , die initialisierte Zahl selbst. Wir geben State ein und verwenden es und binden das in den Funktionsaufruf Jetzt sehen Sie also, dass sich unsere Anzahl von Sätzen in eine tatsächliche Funktion geändert hat . Es wird uns helfen, den Status festzulegen. Es hängt mit diesem U-State-Hook zusammen und ermöglicht es uns , diese Funktionalität zu aktivieren. Und dann lässt unser US-Staat dort arbeiten und seine Magie entfalten. Sie werden also sehen, dass die Anzahl der Sets immer noch unterstrichen ist , weil wir sie noch nicht verwendet haben Aber wir werden es in nur einer Sekunde verwenden. Und wenn wir auf unserer Seite hier noch einmal nachschauen, werden wir feststellen, dass sich bisher nichts geändert hat, weil der initialisierte Wert nicht geändert hat, oder? Wir haben unsere Null dort beibehalten und sie funktioniert einwandfrei Jetzt wollen wir diesen Setter verwenden damit wir den Wert der Zählung dynamisch aktualisieren können, oder? Jedes Mal, wenn wir die Plus-Eins-Taste oder die Minus-Eins-Taste drücken , möchten wir, dass die Null erhöht oder verringert wird. Stimmt das? Also die Art und Weise, wie wir das machen werden, ist die Verwendung einer On-Click-Funktion Es wird eine wirklich einfache, unkomplizierte On-Click-Funktion sein, unkomplizierte On-Click-Funktion wir 2 Sekunden in Anspruch nehmen werden Wenn wir also zu unserer Schaltfläche gehen, haben Schaltflächen, wie wir wissen, eine Klickfunktion Also geben wir unser On-Click ein und weil es wieder Javascript ist, entspricht Camel Case den geschweiften Klammern Und dann rufen wir unseren Set-Zähler auf. Also verwenden wir unsere Klammern und rufen Set Count Und wir werden in die Klammern von set count den Wert übergeben , den wir jetzt haben wollen, weil wir die ursprüngliche Variable von count haben Was auch immer zählt, der Wert ist der Staat, oder? Zählt also dieser Staat, unabhängig von seinem Wert, ob es nun eine Eins oder 100 oder 10.000 ist, das ist der aktuelle Zustand. Also können wir das tatsächlich in unserer Additionsfunktion hier verwenden . Also nehmen wir den Wert von count, was auch immer er zu dem Zeitpunkt ist, und fügen einfach eins hinzu. Also wirklich einfach. Wir geben einfach innerhalb der eingestellten Anzahl ein, wir zählen und dann plus eins und speichern. Und das ist unsere gesamte Funktion, die es uns ermöglicht, unserer Zählung eins hinzuzufügen. Wenn wir es also ausprobieren und plus eins drücken , können wir sehen, dass es funktioniert. Also können wir einfach etwas hinzufügen, hinzufügen, und schon ist alles eingerichtet. Wirklich einen Zähler zu bauen ist gar nicht so schwierig. Es geht einfach mehr darum, die Logik und die Tools und die Schritte dahinter zu verstehen . Wenn wir hierher zurückkehren, können wir das einfach kopieren, es auf unsere zweite Schaltfläche verschieben und die Zählung ändern, um eins zu subtrahieren Wir beziehen uns immer noch auf dieselbe Zählvariable, aber wenn jemand auf die minus Eins klickt, wollen wir, dass sie eins subtrahiert Stimmt das? Also wirklich einfach. Wenn wir hier drüben, subtrahieren, subtrahieren, funktioniert die Taste jetzt und wir haben unseren gesamten Zähler eingerichtet, nett und einfach. Cool. Das ist wirklich eine Art First-Level-Methode den Zähler einzurichten. Stimmt das? Ihr Interviewer könnte Sie bitten, den Zähler auf diese Weise einzurichten Anfänglich könnte dies eine Version eins sein. Aber wenn Sie schon einmal ein technisches Interview geführt haben oder noch nicht, bitten Sie Interviewer manchmal darum, dass Sie, nachdem Sie die erste Version von etwas gemacht haben, wiederholen und eine zweite Version erstellen Lassen Sie uns also zu einer möglichen Iteration dieses Elements übergehen. Wir werden also über Kinder von Elementen sprechen, wie er Requisiten weitergibt, wie Status übergeben wird und solche Dinge Gehen wir also zur nächsten Version über, zwei. 10. Den Counter verfeinern: Ordnung, jetzt, wo wir unsere Version eins komplett eingerichtet haben, lassen Sie uns diese Version zwei bauen In Version zwei könnte Ihr Interviewer Sie fragen, worum Sie jemand bitten könnte, in einer zweiten Version davon das Ganze in verschiedene Komponenten aufzuteilen in verschiedene Komponenten aufzuteilen Denn eines der schönen Dinge an React ist, dass es Ihnen ermöglicht, die Dinge, mit denen Sie arbeiten , wirklich modular zu die Dinge, mit denen Sie arbeiten , wirklich modular Und du musst nicht alles irgendwie in einer superlangen HTML-Datei verschachteln, oder? Sie können die Dinge tatsächlich in kleinere Komponenten zerlegen in kleinere Komponenten zerlegen Wie wir bei der Übergabe des Zählers an die App gesehen haben, können wir eigentlich einfach auf Dinge zugreifen , als ob sie alle in einer großen Datei wären, aber sie getrennt und übersichtlich halten. Lassen Sie uns also etwas näher darauf eingehen , wie wir das machen könnten. Eine Sache, die wir tatsächlich herausbrechen könnten , ist der Button-Bereich, oder? Der eigentliche Auslöser der Komponente. Wenn wir hier eine neue Datei erstellen wollten, könnten wir sie Buttons nennen und die Eingabetaste drücken. Und wenn ich müsste. Also, was ich jetzt mit Button machen möchte ist einfach diese Logik in ihre eigene Komponente zu abstrahieren und sie einfach dort live zu haben. Also, was wir hier tun werden, ist, wir werden zuerst unsere Button-Komponente erstellen, dann werden wir die Button-Informationen von den Zählern nehmen und sie einfach in die kopieren Und wir werden nur eine kopieren und ich werde dir gleich zeigen, warum. Wir werden es hier einfügen. Wir müssen das hier nochmal importieren. Und das ist nur ein erneuter Import der Schaltfläche von Maria Bootstrap, um sicherzustellen, dass sie immer noch funktioniert Dann wurde das Nächste, Schaltfläche gleich Schaltfläche, bereits deklariert ist gleich Schaltfläche, bereits deklariert. Wir müssen den Namen ändern Wir werden das nennen, wir werden diesen benutzerdefinierten Button nennen. Es wird zur benutzerdefinierten Schaltfläche geändert. Ja, das ist also eine weitere wichtige Sache , auf die Sie wahrscheinlich beim Job-Skript gestoßen sind, bevor Sie sichergestellt haben beim Job-Skript gestoßen sind, bevor Sie sichergestellt , dass Ihre Variablen eindeutig sind. In Ordnung, großartig. Sie werden feststellen, dass wir hier einen Fehler mit der Anzahl der eingestellten Werte erhalten . Wir werden in nur 1 Sekunde daran arbeiten. Passen Sie das vorerst an, damit wir keinen Build-Fehler bekommen. Ordnung, cool. Alles startklar. Was wir jetzt mit unserer benutzerdefinierten Schaltfläche machen wollen , ist, dass wir sie im Grunde etwas modularer gestalten wollen, oder? Es kann also entweder ein Erfolgsknopf oder ein Gefahrenknopf sein. Es könnte links oder rechts sein. Es könnte ein Plus oder ein Minus sein. Wir wollen es also so implementieren, dass wir es nicht nur für den Anwendungsfall mit einer Taste verwenden müssen. Wir wollen es so implementieren, dass wir das mit unserer Schaltfläche tun könnten, wenn wir ein Plus - und ein Minuszeichen und eine Multiplikationsschaltfläche hätten und Sie all diese anderen Optionen hätten das also tun, indem wir ihm Requisiten oder Eigenschaften übergeben, oder sind also Dinge, die wir von der übergeordneten Komponente von Counter an die Button-Komponente übergeben der übergeordneten Komponente von Counter an die werden , um herauszufinden, wofür diese spezielle Schaltfläche gedacht ist Lassen Sie mich Ihnen zeigen, wie wir das machen werden. Also das Erste, was wir tun werden, ist, diese Immobilien weiterzugeben. Es gibt also zwei Möglichkeiten, sich die Requisiten zu schnappen, oder? Also könnten wir, könnten im Grunde Requisiten wie, ich weiß nicht, die Variante und die Nummer oder was auch immer weitergeben Requisiten wie, ich weiß nicht, , oder Ja, also können wir die Requisiten entweder so weitergeben und sie dann, du weißt schon, durch unsere Requisiten holen du weißt schon, durch unsere Ja. Das ist eine gültige Art, sie zu übergeben, aber es beinhaltet eine Menge zusätzlicher Syntax, die einen Code irgendwie wie Geld aussehen lässt. Was wir stattdessen tun wollen, ist diese in eine geschweifte Klammer zu setzen, und dann können wir einfach direkt auf diese Variablen zugreifen Ich kann also einfach konstant bleiben, ich muss jetzt keine Variante, keine Variantenvariable initialisieren Variante, Ich kann eigentlich einfach direkt im Code auf die Variante zugreifen. Anstatt hier Erfolg zu haben, übergebe ich jetzt das Wort Variante, die Variable, oder? Also lass uns gehen und das alles miteinander verbinden. Sie können also sehen, wovon ich spreche wenn wir hier die Variablenvariante übergeben und zum Zähler zurückkehren und diese beiden auskommentieren , damit wir sehen können, dass sie nicht mehr funktioniert. Richtig, wir werden tatsächlich importieren, wir werden diesen Import hier rausnehmen und wir werden unsere Schaltfläche importieren, unsere benutzerdefinierte Schaltfläche aus der lokalen Komponente. Schaltfläche nicht von Maria Bootstrap importieren, sondern von Slash Importieren Sie also die benutzerdefinierte Schaltfläche von. In Ordnung, und wir werden es dann benutzen. Hier gehen wir weiter, um eine benutzerdefinierte Schaltfläche zu erstellen. Im Moment ist es nur ein zufälliger blauer Button. Ich kann das sogar kommentieren. Also werden wir alles außer der Variante auskommentieren , damit wir sichergehen können, dass wir einen guten Test machen. Es ist eine zufällige Tastennummer, da ist nichts drin. Was wir dann jetzt tun können, ist tatsächlich unsere Immobilien weiterzugeben. Wir nehmen Variante gleich und geben Erfolg ein, weil unser erster Erfolg war, unser zweiter Gefahr Jetzt ist der Varianten-Button grün. Wir wissen, dass, wenn wir unsere Eigenschaft vom Zähler an die benutzerdefinierte Schaltfläche in einer Eigenschaft der Variante übergeben unsere Eigenschaft vom Zähler an die benutzerdefinierte Schaltfläche in einer Eigenschaft der Variante sie dann aufrufen und dann in der benutzerdefinierten Schaltfläche darauf zugreifen und sie als Variante verwenden, sie einfach weiterleitet. Stimmt das? Wir bohren die Requisite gerade von der Theke bis zur Taste runter Wir können das also machen, also können wir mit jeder Immobilie machen , mit der wir arbeiten wollen, oder? Also, wenn wir dann dasselbe mit Stil machen wollten, richtig, wenn wir spezielle Stilwünsche hätten, würden wir es wollen. Wir machen Marge, oder? Ein Ram, richtig? Und wenn wir jetzt zurück zur Schaltfläche statt zur Zahl gehen, importieren wir den Stil. Wir können Stil gleich Stil machen. Eigentlich brauchen wir nicht das Doppelte, wir brauchen nur einen Stil, oder? Und auch hier können wir es nicht wirklich sagen, aber man kann es etwas außerhalb der Mitte sehen. Wir werden diesen Spielraum haben, oder? Ordnung, das ist also ein sehr schneller Weg, um Immobilien auf wirklich dynamische Weise zu nutzen, oder? Wenn wir also eine zweite Schaltfläche erstellen, haben wir jetzt bereits zwei Schaltflächen, mit denen wir arbeiten können. Und wir mussten nicht viel arbeiten, oder? Wir mussten nicht weitermachen und die Variante schreiben und den Stil schreiben. Und dies und das mussten wir nur in ein schreiben, wir mussten nur ein paar einfache Felder aktualisieren, oder? Also in diesem Fall werden wir die Variante auf Gefahr ändern und wir werden das Stilelement hier entfernen. Jetzt sollten wir einen grünen und einen roten Knopf haben. Perfekt. Läuft wirklich gut. Die anderen Dinge, die wir hinzufügen möchten sind die Plus-Eins- und die Minus-Eins sowie die Onclick-Funktion Richtig, wir wollen zwei Dinge tun , damit das alles richtig funktioniert Wir wollen eine beliebige Zahl in der benutzerdefinierten Schaltfläche übergeben , und dann wollen wir auch die Funktion selbst übergeben. Wenn wir das also so ändern es kein selbstschließendes Element ist, und wir, wie wir bereits erwähnt haben, es einfach zu einem normalen Element machen, das Kinder aufnehmen kann . Wir setzen plus eins in das erste ein. Und wenn wir jetzt zu Button gehen, wollen wir auf etwas zugreifen, das Children heißt. Es gibt eine besondere Eigenschaft namens Kinder. Ja, es gibt eine spezielle Eigenschaft namens Children, wir auf alles zugreifen können, was in einem React-Element verschachtelt ist in einem React-Element verschachtelt Was wir hier einfach machen, ist, dass innerhalb unserer Schaltfläche zugegriffen wird, anstatt auf die Stelle, an der wir gerade die Plus-Eins hatten, wir werden das tatsächlich ändern, um Kinder zu sagen . Und speichern Sie es. Wenn wir dann hier nachschauen, hat React herausgefunden, dass, weil die Plus-Eins hier ein Kind unserer benutzerdefinierten Schaltfläche war, wir dort auch ein Kind der benutzerdefinierten Schaltfläche sein wollten . wir nun angegeben haben, dass wir dort ein Kind verwenden wollen , werden die Kinder, alle Kinder nun innerhalb des benutzerdefinierten Button-Elements leben . Das ergibt Sinn. Also haben wir hier einfach die Plus-Eins genommen, sie hier auf den Button gebracht, Kinder weitergegeben, was ein besonderes Requisit ist. Und dann haben wir es an unsere Seite selbst weitergegeben. Lass es uns noch einmal machen, aber mit unserem Minus eins. Also werden wir das hier ändern, es zu einem Element machen, das sich nicht selbst schließt, sondern nur zu einem regulären Element. Und wir werden minus eins machen. Wir werden das speichern dann dort nichts ändern, gehen einfach zurück zu unserer Seite und da ist es. Es funktioniert. Also geben wir einfach Kinder weiter, wie wir es mit HTML tun würden , aber mit unseren Buttons. Ordnung, das Letzte, was wir hinzufügen müssen, ist unsere On-Click-Funktionalität, richtig? Dieser ist ein bisschen mehr, dieser ist ein bisschen anders. Was wir hier tun werden, sind zwei Dinge. Wir können das beim Klicken genau so schreiben, wie wir es zuvor hatten , und unsere festgelegte Anzahl weitergeben , Zählung entspricht Zählung plus Eins Und dann würde das funktionieren, sobald wir unseren Klick hinzugefügt haben. Sobald wir unseren hinzugefügt haben, klicken Sie hier und klicken Sie auf Klick. Also, was auch immer Sie mit dem Klick weitergeben und es herausnehmen, das funktioniert, los geht's. Wir fügen jedes Mal einen hinzu. Das ist also eine Möglichkeit, es zu tun. Eine andere Möglichkeit, dies zu tun, besteht darin die Logik vollständig in die Komponente zu abstrahieren. Was hier von Vorteil sein könnte ist, eine Funktion namens add one zu erstellen. Wir fügen hinzu, dass eins gleich der eingestellten Anzahl entspricht, dass Zählung plus eins ist. Ordnung, also haben wir diese Logik einfach in den oberen Teil der Theke abstrahiert diese Logik einfach in den oberen Teil der Theke Ordnung, jetzt, wo wir diese Funktion zum Hinzufügen erstellt haben , können wir sie einfach hier reinschreiben Wir können einfach „Add One“ schreiben. Dann wird unser Klick tatsächlich einfach hinzugefügt. Ups. Dann fügt unser Klick tatsächlich nur einen hinzu, wenn wir ihn brauchen Fantastisch. Das nächste, was wir hier tun können, ist das Abziehen von Eins weg, sodass es in unserem eigentlichen Code unten etwas sauberer Also subtrahieren wir eins und setzen die Anzahl minus Das werden wir uns sparen. Und dann nehmen wir das, subtrahieren eins und geben es als On-Click in unserer Funktion hier weiter Wenn wir es getan haben und wenn wir alles richtig gemacht haben, sollte es einfach funktionieren Also lass uns einen Blick darauf werfen. Subtrahiere eins. Fantastisch Es funktioniert genauso, wie wir es erwartet hatten. Also können wir diesen zusätzlichen Text hier loswerden. Spar dir das. Und wir haben unseren Komponenten jetzt eine weitere Ebene hinzugefügt , oder? Wir haben also diese Varianten übergeben, wir haben die Styles übergeben und wir haben diese On-Klicks an die Schaltfläche weitergegeben. Die Schaltfläche ruft das Kind jetzt dynamisch auf. Die Schaltfläche ruft die Variante nun dynamisch den Stil und den Klick nach Bedarf auf. Und gibt das richtige Kind ein, basierend auf dem , was wir durchgemacht haben. Es ist ziemlich cool. Das ist also eine Möglichkeit, mit Eigenschaften von einer übergeordneten Komponente zu arbeiten , also der Gegenkomponente zu einer untergeordneten Komponente , der Button-Komponente. Das ist also nur eine Art, damit zu arbeiten. Also werden wir ein letztes Mal üben, aber wir werden es mit der Zählkomponente machen. Also das ist eigentlich ziemlich einfach. Ein bisschen einfacher als der Button selbst. Wir erstellen eine neue Datei und nennen sie Counts. Und wir werden dasselbe tun und eine Zählkomponente erstellen. Was wir verwenden werden, diese Zählkomponente ist genau das, wofür wir die Eins h verwenden. Wir werden count importieren und weitergeben, anstatt es als Kind zu verwenden, werden wir es tatsächlich einfach als Eigenschaft weitergeben . Wir werden die Zählung weitergeben. Und dann werden wir hier das ganze Styling von unserer Komponente abstrahieren . Also lass uns das loswerden. Und wir werden sparen. Und wenn wir zu den Zählungen zurückkehren, wollen wir jetzt auf all diese Immobilien zugreifen, richtig? wir also dasselbe tun wie in Button, verwenden wir hier unsere geschweiften Klammern und greifen auf den Wert von count zu Das werden wir speichern. Und wenn Sie sich erinnern, hatten wir hier tatsächlich eine H-Eins statt eines Divs für unsere tatsächliche Anzeige der Zählung selbst. Und das Coole an JSX ist, dass es eigentlich egal ist, was die äußere Komponente ist Es könnte ein Knopf sein, es könnte sein, es spielt wirklich keine Rolle Es könnte sogar ein sogenanntes Fragment sein, bei dem Sie eigentlich nur diese leeren Klammern haben, die keinen Wert haben. Was wir tun werden, ist stattdessen den H-Wert zu verwenden. Also geben wir eine H-Eins ein, wir speichern sie und dann greifen wir einfach auf den Wert von count zu. Und wenn Sie sich erinnern, wir hatten auch ein bisschen Siling dabei, also werden wir es einfach kopieren, wir werden es einfach wieder hier einfügen Und jetzt, wenn wir alles richtig gemacht haben, sollte es genauso aussehen, oder? Wir haben unser Konto und es funktioniert wie erwartet. Auch das war wirklich unkompliziert, was das bloße Durchgehen der Zählung anging. Wir haben den Wert von count an die Komponente namens count übergeben , auf den Wert von count zugegriffen und ihn angezeigt. Hoffentlich hilft Ihnen das, ein wenig zu verstehen, wie JS funktioniert, wie React funktioniert, wie Requisiten weitergegeben werden wie die Beziehung zwischen Eltern und Kind funktioniert Und noch einmal, der Grund dafür ist nur, die Dinge ein bisschen sauberer zu machen Etwas, das wir in der Button-Komponente sogar tun könnten , um sie ein wenig zu bereinigen , ist die Variante dynamisch anzuzeigen, oder? Anstatt die Variante hier in der Counter-Datei explizit auszuschreiben , was einfach viel Platz beansprucht und es für uns etwas Zusätzliches ist , daran zu denken, jedes Mal, wenn wir etwas ändern müssen, daran zu denken , sie zu ändern. Es wäre toll, wenn all unsere Stile einfach in den Button-Komponenten leben würden. Mal sehen, ob wir das hier machen können. Was wir tun werden, ist in unsere Button-Komponente zu gehen und anstatt auf diese variable Variante zuzugreifen, werden wir sie auf dem aufbauen , was das Kind ist. Also werden wir diese Frage hier stellen. Also, wenn Kinder E gleich plus eins sind, dann ist das unsere Werbekomponente, oder? Und wenn Sie sich erinnern, wird sich unsere Werbekomponente auf der linken Seite befinden und grün sein Wir wollen, dass unsere Variante es ist, wir werden danach fragen und wir werden wollen, dass unsere Variante erfolgreich ist. Und falls Sie sich erinnern, hier werden sogenannte ternäre Operatoren verwendet , die wir in Javascript besprochen haben, oder? Also stellen wir hier eine Frage zur Bedingung. Also bewerte diesen Ausdruck. Wenn es wahr ist, führe hier zu diesem ersten Argument. Wenn es jedoch falsch ist, resultiere das zweite, was in unserem Fall Gefahr ist. Wenn wir das also richtig gemacht haben, sodass diese Variante nicht mehr verwendet wird, sollte sie einfach immer noch die richtigen Farben der Schaltflächen anzeigen . Also wenn wir hier nachschauen, ja, es färbt immer noch, dieselben Farben, und es funktioniert genauso wie erwartet Fantastisch. Also nochmal, was wir hier gemacht haben, richtig, wir verwenden einfach einen ternären Operator Wir haben den Wert von Kindern genommen , der entweder plus eins oder minus eins sein wird Und wir haben die Frage gestellt, also wenn das Kind plus eins ist, wenn das stimmt, wollen wir, dass es die Farbe des Erfolgs trägt, die Erfolgsvariante. Wenn es falsch ist, wollen wir, dass es die Gefahrenposition anzeigt , die, wie Sie wissen, rot ist. Und weil wir das gemacht haben, müssen wir diese Variante der Stütze nicht mehr bohren ermöglicht uns tatsächlich, unseren Code nur ein bisschen zu bereinigen Genau hier, macht Sinn. Wir werden das noch einmal nutzen nur um uns ein Bild davon zu machen. Also nochmal, hier in der benutzerdefinierten Schaltfläche sehen Sie, dass wir auf der einen Seite Stil haben und auf der anderen keinen Stil. Was wir in der Schaltfläche wieder tun können , ist, dies je nach Variante anzuzeigen. Und wir machen es nur so, weil wir wissen , dass sich unser Zähler nicht so stark ändern wird , oder? Wir haben eine Plus-Eins und wir haben eine Minus-Eins und es wird sich nicht so viel ändern. Wenn es sich in Zukunft stark ändern wird, wollen wir es vielleicht nicht auf diese Weise tun. Da es sich jedoch um einen begrenzten Umfang handelt, ist dies für unseren Anwendungsfall sinnvoll. Ordnung, also nehmen wir unseren Stil und wollen einen Rand, rechts, von einem Rand hinzufügen. Ich werde das kopieren. Und ich werde es von dieser äußeren Zählerkomponente entfernen. Richtig? Also haben wir das schon viel aufgeräumt. Wissen Sie, wir haben, wir haben hier wirklich nur etwa drei Zeilen und Sie können sehen Wert es hat, ein bisschen vom Stil wegzunehmen , der in einer anderen Komponente angezeigt wird, wenn Sie sehen, wie viel sauberer die übergeordnete Komponente wird Stimmt. Und wie Sie sehen können, weil wir es herausgenommen haben, funktioniert der rechte Rand nicht. Es ist nicht da. Was völlig in Ordnung ist, weil du es wieder hinzufügen wirst. Gehen wir also zurück zum Button. Also gut, und dann werden wir den Stil von hier oben entfernen, weil wir ihn nicht noch einmal brauchen werden . Heb dir das auf. Entferne das dort und speichere das. Okay, was wir hier mit dem Stil machen werden, ist etwas anders, weil wir nur ein Element ändern Wir werden es auf eine etwas andere Art und Weise überprüfen. Also werden wir Margin eingeben, richtig? Und dann innerhalb der Marge, richtig? Jetzt werden wir diese Frage stellen. Wenn Kinder gleich plus eins sind, wollen wir, dass der Rand, richtig, zwei ist Nein, sonst wollen wir, dass der Rand, richtig, Null ist. Das werden wir speichern. Da haben wir es. Wir haben jetzt unsere Marge hinzugefügt, richtig, je nachdem, ob das Kind das Add One ist oder nicht oder nicht. Das ist also eine wirklich einfache Methode um unsere Gegenkomponente, unsere übergeordnete Komponente, zu bereinigen und einfach alle Stile in einem Bereich zu halten . Richtig. Wir können immer noch sehen, dass wir die Logik haben, die innerhalb von Counter behandelt wird. Aber Counterwell ist jetzt wie eine logische Komponente , die den gesamten Status enthält, den die Funktion aufruft, der dann an die Anzeigekomponenten der Zähl- und benutzerdefinierten Schaltflächen übergeben wird. Deshalb sind React-Komponenten auch konzipiert, dass sie idealerweise nur einmal verwendet werden können. Sie zeigen also Logik an oder sie arbeiten daran, aber sie tun nicht unbedingt beides. Das ist also einer der Gründe, warum Sie möglicherweise in einem Vorstellungsgespräch oder in einem potenziellen Jobszenario darum gebeten werden in einem Vorstellungsgespräch oder in einem . 11. Tests: Ordnung, das Letzte, woran wir heute arbeiten wollen, ist das Testen. Testen ist ein weiteres interessantes Element bei React. Wie Sie bereits gesehen haben, als wir uns unser Paket dot json angesehen haben, gab es diese Dinge, die wir installieren als Testbibliotheken bezeichnet werden, oder? Das sind Testbibliotheken, auf die wir Zugriff haben und von denen wir dann bestimmte Aufrufe verwenden können , um sicherzustellen, dass unsere App korrekt funktioniert. Also, wenn wir uns App-Tests ansehen. Im Moment schlägt es fehl , weil wir tatsächlich einen Teil dessen entfernt haben , was früher in der App enthalten war. Richtig. Es wurde geprüft, ob, nun, lassen Sie uns das Zeile für Zeile durchgehen. In diesem Test importieren wir zwei Dinge. Rendern und Bildschirm aus der Testbibliothek reagieren. Wir importieren auch App aus App. Nun, was wir dann dieses Ding nennen, Test. Wir führen einen Test durch. Der Test rendert einen Learn-React-Link Es rendert eine App und findet dann ein Link-Element. Es greift auf den Bildschirm zu und ruft dann Get per Text auf. Es ruft diese Methode namens get by text auf, mit der wir die Wörter React finden können Und du wirst sehen, dass es wirklich interessant geschrieben Hier werden Sie feststellen, dass es nicht als typische Zeichenfolge geschrieben Wenn Sie sich erinnern , haben wir irgendwann das rote X angesprochen , reguläre Ausdrücke. Weißt du, das ist normal , weil es so geschrieben ist dass wir nach diesen Wörtern suchen können, unabhängig davon, ob es sich um Großbuchstaben oder gewöhnliche Buchstaben handelt oder nicht Großbuchstaben oder gewöhnliche Buchstaben handelt oder Also schreibst du einen Schrägstrich, du schreibst deine Phrase, du schreibst einen weiteren Schrägstrich und dann schreibst du gleich danach ein Ich Das ist also nur eine kleine lustige Tatsache , dass Sie vielleicht das Internet nutzen können Und dann funktioniert der Test so , dass der letzte Schritt immer die Bestätigung ist, also was wir versuchen sicherzustellen , dass es funktioniert, passiert usw. Wir erwarten also, dass das Link-Element, die Variable, die wir hier erstellt haben , im Dokument enthalten ist Wir erwarten also, dass das Link-Element im Dokument enthalten ist. Wie ich bereits sagte, dies derzeit fehl, weil wir dieses Link-Element aus dem Dokument entfernt haben . Aber wir können diesen Test tatsächlich korrigieren und ihn nach etwas anderem suchen lassen, das im Dokument enthalten ist, oder? Da wir also wissen, dass unser Header immer im Dokument sein wird , können wir dieses Link-Element verwenden, bei dem wir dasselbe Format verwenden können , um zu überprüfen, ob unser Header vorhanden ist. Lassen Sie uns also weitermachen und das Link-Element so ändern , dass es gezählt wird. Und wir machen den Bildschirm, aber wir löschen diesen Teil. Wir kommen mit dem Bildschirm zurecht. Wir wollen es je nach Rolle bekommen. Und Get By Role ermöglicht es uns, Dinge grundsätzlich anhand der Rolle zu finden, die sie haben. Also, wenn es eine Schaltfläche ist, wenn es ein Text ist, wenn es ein Etikett ist. Wir können diese verschiedenen Rollen verwenden, um die eigentlichen Elemente selbst zu identifizieren. Zum Glück haben wir nur eine Überschrift auf dieser Seite, sodass wir die Überschrift „Abrufen nach Rolle“ verwenden können. Wir können das dort verwenden, wo wir erwarten, dass die Anzahl im Dokument steht. Wie Sie sehen können, lief es bereits korrekt, als wir es gespeichert lief es bereits korrekt, als wir es weil wir für die richtigen Dinge sorgen Wir könnten noch einen Test machen. Wir könnten genau den gleichen Test machen, lass uns ihn neu schreiben. Aber wir können zum Beispiel nach der Plus-Schaltfläche suchen, oder? Wir können Renderings machen. Ähm, und wir werden auch diese Renderüberschrift ändern wollen , nur damit sie korrekt ist Der zweite Test, den wir durchführen möchten, ist Renders Plus Button. Und dann können wir einfach, uups, den Test erstellen und wir rendern die App. Und wissen Sie, das Interessante, worüber wir vielleicht noch nicht einmal nachgedacht haben, ist der Grund, warum das richtig läuft, weil all diese Komponenten in der App leben Weil die App einen Zähler und eine Zählung enthält und eine Schaltfläche enthält Es spielt keine Rolle , wo wir den Test aufrufen , weil er sie alle sehen kann. Also nur eine weitere interessante Sache, über die man nachdenken sollte. Und dann wollen wir konstant schreiben, was war das? Plus-Taste ist gleich Bildschirm, Get by Roll. Aber das Interessante ist, dass wir eigentlich nicht zwei Knöpfe haben Wir haben die Plus-Taste und die Minus-Taste. Aber kommen wir mit der Rolltaste und bestehen dann? Was gehen wir in den zweiten Teil über? Können wir plus eins weitergeben? Das ist möglicherweise eine Möglichkeit, es zu tun. Wie Sie sehen, funktioniert es wiederum nicht wirklich. Wir finden jetzt mehrere Elemente mit dem Roll-Button. Wir können nicht einfach sagen, oh ja, wir werden herausfinden, was es ist. Wir müssen hier wahrscheinlich eine Option anbieten. Also müssen wir fragen, okay, wir wollen die Schaltfläche finden, wir wollen die Schaltfläche finden, aber dann gibt es noch eine weitere Eigenschaft namens name, die es uns ermöglicht, gezielt die Schaltfläche zu finden , die einen beliebigen Namen hat. Richtig? Also so behebe ich das Problem. Wir haben den Bildschirm erstellt, wir haben Get by Roll gemacht, wir haben nach der Roll-Schaltfläche gesucht, und dann wollen wir, dass die Schaltfläche mit dem Namen plus eins die Schaltfläche ist, nach der wir suchen. Stimmt das? So greifen wir also auf die Plus-Schaltfläche zu. Ich zeige dir eine andere Methode dafür und wir können nach der Minus-Taste suchen. Kanäle plus Knopf entsprechen also dem. Dann wollen wir sichergehen , dass es in dem Dokument steht. Wir sagen das, los geht's, damit wir wissen, dass es tatsächlich richtig funktioniert. Ordnung, jetzt schreiben wir einen weiteren Test und suchen einfach nach einen weiteren Test und suchen einfach der Schaltfläche zum Subtrahieren Der Test rendert die Schaltfläche „Subtrahieren“. Wir werden unseren Test schreiben. Wir rendern die App, indem wir die Schaltfläche vom Bildschirm abziehen, anstatt sie nach Rolle abzurufen Jetzt verwenden wir Get by Text. Also werden wir per Text abrufen und dann wird es minus eins sein. Wir werden das speichern. Dann werden wir die Behauptung speichern Erwarten Sie, dass sich die Schaltfläche zum Subtrahieren im Dokument befindet. Das nennen wir. Wenn wir es richtig gemacht haben, bestehen unsere Tests. Es gibt zwei Möglichkeiten, tatsächlich nach einem Element zu suchen. Ich meine, es gibt mehr als zwei Möglichkeiten, aber die beiden Möglichkeiten, die wir uns gerade ansehen sind die Verwendung von Get by Role und die Verwendung von Get by Text. Überraschenderweise ist Abrufen nach Text zwar die knappere der beiden Optionen, Abrufen nach Rolle ist eigentlich vorzuziehen, weil „Abrufen nach Rolle“, Sie können sozusagen, Sie können ein bisschen sicherer sein , dass Sie genau das bekommen, was Sie wollen Nehmen wir an, wir hätten eine Überschrift mit der Schrift minus eins. Dieser Bildschirmpunkt nach Text würde tatsächlich beide Elemente abrufen und einen Fehler auslösen, da Get by Text buchstäblich nur nach dem Text sucht. Get by Roll ist dagegen etwas nuancierter, ein bisschen spezifizierter, wenn wir die Rolle der Schaltfläche sowie den Namen oder eine andere Option berücksichtigen, können wir sicher oder zumindest mit größerer Sicherheit sicher sein , dass wir das richtige Element erhalten, nach dem wir suchen 12. Schlussbemerkung: Fazit: Wir haben in diesem Video viel besprochen, von den Anfängen von React bis hin zum Aufbau Ihres eigenen Zählers. Ich würde gerne sehen, wie Sie sich entschieden haben, Ihren Counter zu implementieren. Hinterlassen Sie also bitte einen Link zu Ihrem Code oder der gehosteten Site der Registerkarte Projekte und Ressourcen, damit ich all die harte Arbeit sehen kann, die Sie geleistet haben. Ich lese jeden Kommentar und jede Bewertung und sehe mir alle eingereichten Projekte an. Wenn Sie also Fragen haben, Sie gerne einen Kommentar im Bewertungsbereich unten hinterlassen oder mich direkt kontaktieren. Sie auf meiner Profilseite Weitere Informationen dazu finden Sie auf meiner Profilseite. Wenn du mehr über Programmieren erfahren möchtest, schau dir die anderen Videos an, die ich auch auf meiner Profilseite habe. Ich habe auch Videos zu HTML und CSS auf meinem Youtube-Kanal und meiner Website verfügbar. Wenn du daran interessiert bist, diese zu lernen, schau sie dir an und ich werde sie im nächsten Video sehen.