Tutorial von Ember.js Tutorial. Super Rentals App. Teil 1.1

Nach einem ziemlich erfolgreichen Test des Stiftes mit Ember Octane entschied ich mich (oder besser gesagt, wir entschieden uns fĂŒr eine Google-Übersetzung), um zu schwingen heilig Übersetzung des Tutorials aus dem offiziellen Handbuch von Ember.js


Wie Sie dem Text entnehmen können, wurde dieses Tutorial fĂŒr entwickelt der kleinste AnfĂ€nger Programmierer. Das hindert ihn nicht daran, erfahrenen KĂ€mpfern als Ausgangspunkt fĂŒr die Erforschung des Rahmens zu dienen. FĂŒr den vollen Durchgang dieses Spiel Das Tutorial dauert 1-2 Stunden. Danach können Sie Ember.js in der neuesten Ausgabe von Octane bewerten, ohne die Bewertungen der Frische des letzten Jahres lesen zu mĂŒssen .


Die Liste der im Lernprogramm behandelten Themen enthÀlt folgende VorschlÀge:


  • Verwenden von Ember CLI
  • Ember-Anwendungsdatei und Ordnernavigation
  • Seiten erstellen und verknĂŒpfen
  • Vorlagen und Komponenten
  • Automatisiertes Testen
  • Mit Serverdaten arbeiten
  • Dynamische Segmente in Routen
  • Leistungen bei Ember
  • Ember-Datenbibliothek
  • Adapter und Serialisierer
  • Anbieterkomponentenmuster

Wenn Sie damit einverstanden sind, dass es 1-2 Stunden lang gut schmeckt, heißen Sie cat willkommen!


Vom Übersetzer:
Da Habr hbs nicht korrekt darstellen kann habe ich Bilder eingefĂŒgt. Verwenden Sie den Originaltext, um die Code-EinfĂŒgungen zu kopieren. Entschuldigung fĂŒr die Unannehmlichkeiten.

Auch das ursprĂŒngliche Tutorial besteht aus zwei Teilen, aber aufgrund der LautstĂ€rke habe ich den ersten Teil in zwei Teile geteilt: Teil 1.1 und Teil 1.2 . Ich hoffe, dass der zweite Teil vollstĂ€ndig ĂŒbersetzt wird, und gebe ihm dann die Nummerierung von Teil 2. Ich hoffe auch, dass dies nicht zu Verwirrung fĂŒhrt.)

In russischer Sprache ĂŒber Ember können Sie im Telegrammkanal ember_js fragen

Eintrag


Willkommen in der Welt von Ember!


In diesem Tutorial erstellen wir mit Ember die Super Rentals-App. Es wird eine Website sein, auf der Sie interessante Übernachtungsmöglichkeiten fĂŒr Ihren nĂ€chsten Urlaub finden. Schauen Sie sich die fertige Anwendung an, um eine Vorstellung vom Umfang des Projekts zu erhalten.


Bild


Unterwegs erfahren Sie alles, was Sie zum Erstellen der grundlegenden Ember-Anwendung benötigen. Wenn Sie wÀhrend des Unterrichts nicht weiterkommen, können Sie den Quellcode herunterladen, um ein vollstÀndiges Arbeitsbeispiel zu erhalten.


Diese Lektion besteht aus zwei Teilen. Der erste Teil behandelt die folgenden Grundkonzepte:


  • Verwenden von Ember CLI
  • Ember-Anwendungsdatei und Ordnernavigation
  • Seiten erstellen und verknĂŒpfen
  • Vorlagen und Komponenten
  • Automatisiertes Testen
  • Mit Serverdaten arbeiten

Im zweiten Teil der Lektion gehen wir mit den bereits erlernten Konzepten zur nĂ€chsten Ebene ĂŒber.


Neue Projektgeneration


In diesem Teil installieren Sie die Ember-CLI, erstellen ein neues Ember-Projekt und fĂŒgen Ihrer neuen Anwendung grundlegende Muster und Stile hinzu. Am Ende des Teils sollten Sie eine Landingpage mit einem Bild des lieben Professors Tomster sehen:
Bild


Wenn Sie diese Seite erstellen, lernen Sie Folgendes:


  • Installieren Sie Ember CLI
  • Erstellen Sie eine neue Ember-App mit der Ember-CLI
  • Starten und stoppen Sie den Entwicklungsserver
  • Dateien bearbeiten und sofort das Ergebnis sehen (live nachladen)
  • Arbeiten Sie mit HTML, CSS und Ressourcen in der Ember-App

Installieren Sie Ember CLI


Sie können die neueste Version von Ember CLI installieren, indem Sie den folgenden Befehl ausfĂŒhren:


 $ npm install -g ember-cli 

Um zu ĂŒberprĂŒfen, ob Ihre Installation erfolgreich war, fĂŒhren Sie Folgendes aus:


 $ ember --version ember-cli: 3.15.0 node: 12.8.1 os: linux x64 

Wenn die Versionsnummer angezeigt wird, können Sie loslegen.


Erstellen einer neuen Ember-Anwendung mit der Ember-CLI


Mit dem Befehl Ember CLI new können wir ein neues Projekt erstellen. Verwenden Sie das ember new <project-name> Muster ember new <project-name> . In unserem Fall super-rentals der Name des Projekts super-rentals :


 $ ember new super-rentals installing app Ember CLI v3.15.0 Creating a new Ember app in /home/runner/work/super-rentals-tutorial/super-rentals-tutorial/dist/code/super-rentals: create .editorconfig create .ember-cli create .eslintignore create .eslintrc.js create .template-lintrc.js create .travis.yml create .watchmanconfig create README.md create app/app.js create app/components/.gitkeep create app/controllers/.gitkeep create app/helpers/.gitkeep create app/index.html create app/models/.gitkeep create app/router.js create app/routes/.gitkeep create app/styles/app.css create app/templates/application.hbs create config/environment.js create config/optional-features.json create config/targets.js create ember-cli-build.js create .gitignore create package.json create public/robots.txt create testem.js create tests/helpers/.gitkeep create tests/index.html create tests/integration/.gitkeep create tests/test-helper.js create tests/unit/.gitkeep create vendor/.gitkeep Installing packages... This might take a couple of minutes. npm: Installing dependencies ... npm: Installed dependencies Initializing git repository. Git: successfully initialized. Successfully created project super-rentals. Get started by typing: $ cd super-rentals $ npm start Happy coding! 

Dieses Team erstellt fĂŒr uns einen neuen Ordner namens " super-rentals . Wir können mit dem cd dorthin gehen.


 $ cd super-rentals 

Im Rest des Tutorials mĂŒssen alle Befehle im Ordner " super-rentals " ausgefĂŒhrt werden. Dieser Ordner hat folgende Struktur:


 super-rentals ├── app │ ├── components │ │ └── .gitkeep │ ├── controllers │ │ └── .gitkeep │ ├── helpers │ │ └── .gitkeep │ ├── models │ │ └── .gitkeep │ ├── routes │ │ └── .gitkeep │ ├── styles │ │ └── app.css │ ├── templates │ │ └── application.hbs │ ├── app.js │ ├── index.html │ └── router.js ├── config │ ├── environment.js │ ├── optional-features.json │ └── targets.js ├── public │ └── robots.txt ├── tests │ ├── helpers │ │ └── .gitkeep │ ├── integration │ │ └── .gitkeep │ ├── unit │ │ └── .gitkeep │ ├── index.html │ └── test-helper.js ├── vendor │ └── .gitkeep ├── .editorconfig ├── .ember-cli ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .template-lintrc.js ├── .travis.yml ├── .watchmanconfig ├── README.md ├── ember-cli-build.js ├── package.json ├── package-lock.json └── testem.js 15 directories, 32 files 

Im weiteren Verlauf der Lektion werden wir den Zweck dieser Dateien und Ordner kennenlernen. In der Zwischenzeit wissen Sie einfach, dass wir die meiste Zeit im app Ordner arbeiten werden.


Starten und Stoppen des Entwicklungsservers


Ember CLI enthĂ€lt viele verschiedene Befehle fĂŒr verschiedene Entwicklungsaufgaben, wie zum Beispiel den ember new Befehl ember new wir zuvor gesehen haben. Es kommt auch mit einem Entwicklungsserver, den wir mit dem Befehl ember server ausfĂŒhren können:


 $ ember server building... Build successful (9761ms) – Serving on http://localhost:4200/ 

Der Entwicklungsserver ist fĂŒr die Kompilierung unserer Anwendung verantwortlich. Es hat auch einen eingebauten Webserver, der Dateien an den Browser liefert. Das Herunterladen kann einige Zeit dauern. Sobald es funktioniert, öffnen Sie Ihren bevorzugten Browser und gehen Sie zu http://localhost:4200 . Sie sollten die folgende BegrĂŒĂŸungsseite sehen:
Willkommensseite


Zoe erklÀrt:



Die localhost Adresse in der URL bedeutet, dass Sie nur von Ihrem lokalen Computer aus auf den Entwicklungsserver zugreifen können. Wenn Sie Ihre Arbeit mit der ganzen Welt teilen möchten, mĂŒssen Sie Ihre Anwendung im öffentlichen Internet bereitstellen . Wir werden dies im zweiten Teil der Lektion erklĂ€ren.

Sie können den Entwicklungsserver jederzeit beenden, indem Sie im Terminalfenster, in dem der ember server , Ctrl + C (fĂŒr MacOS Cmd + C ) eingeben. Das heißt, durch DrĂŒcken der Taste "C" auf der Tastatur, wĂ€hrend Sie die Taste "Strg" gedrĂŒckt halten. Sobald es angehalten wurde, können Sie es mit demselben ember server Befehl erneut starten. Es wird empfohlen, zwei Terminalfenster zu öffnen: eines, um den Server im Hintergrund zu starten, das andere, um andere Ember-Konsolenbefehle einzugeben.


Dateibearbeitung und Live-Reload


Der Entwicklungsserver verfĂŒgt ĂŒber eine Funktion namens Live Reload, die DateiĂ€nderungen in Ihrer Anwendung ĂŒberwacht, alles automatisch neu kompiliert und alle geöffneten Browserseiten aktualisiert. Das ist sehr praktisch in der Entwicklung, also lasst es uns versuchen!


Wie im Text auf der BegrĂŒĂŸungsseite angegeben, befindet sich der Quellcode fĂŒr die Seite in app/templates/application.hbs . Versuchen wir, diese Datei zu bearbeiten und durch unseren eigenen Inhalt zu ersetzen:
hbs hallo welt
Kurz nach dem Speichern der Datei sollte Ihr Browser automatisch aktualisiert werden und unsere GlĂŒckwĂŒnsche an die ganze Welt senden. Großartig!
Browser hallo welt
Wenn Sie mit dem Experimentieren fertig sind, löschen Sie die Datei app/templates/application.hbs . Wir werden es nicht lĂ€nger brauchen. Wir werden es spĂ€ter hinzufĂŒgen.


Auch hier wird die leere Seite automatisch wieder angezeigt, sobald Sie die Datei löschen, wenn Sie die Browserregisterkarte noch geöffnet haben. Dies spiegelt die Tatsache wider, dass wir die Bewerbungsvorlage nicht mehr in unserer Bewerbung haben.


Arbeiten Sie mit HTML, CSS und Assets in der Ember-Anwendung


Erstellen Sie die app/templates/index.hbs und fĂŒgen Sie das folgende Markup ein.
hbs index
Wenn Sie denken, "Hey, das ist wie HTML!", Dann haben Sie absolut Recht! In der einfachsten Form sind Ember-Vorlagen nur HTML. Wenn Sie bereits mit HTML vertraut sind, sollten Sie sich hier wie zu Hause fĂŒhlen.


Im Gegensatz zu HTML können Ember-Vorlagen natĂŒrlich viel mehr als nur statischen Inhalt anzeigen. Wir werden es bald in Aktion sehen.


Nach dem Speichern der Datei sollte sich Ihr Browser-Tab automatisch aktualisieren und uns die BegrĂŒĂŸungsnachricht anzeigen, an der wir gerade gearbeitet haben.


HTML nicht gestylt


Bevor wir etwas anderes tun, fĂŒgen wir unserer Anwendung einen Stil hinzu. Wir verbringen genug Zeit damit, auf den Computerbildschirm zu schauen, also mĂŒssen wir unser Augenlicht vor dem bloßen HTML-Markup schĂŒtzen!


GlĂŒcklicherweise hat uns unser Designer CSS zur Verwendung geschickt, sodass wir die Stylesheet-Datei hochladen und nach app/styles/app.css . Diese Datei enthĂ€lt alle Stile, die wir zum Erstellen der restlichen Anwendung benötigen.


 @import url(https://fonts.googleapis.com/css?family=Lato:300,300italic,400,700,700italic); /** * Base Elements */ * { margin: 0; padding: 0; } body, h1, h2, h3, h4, h5, h6, p, div, span, a, button { font-family: 'Lato', 'Open Sans', 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, sans-serif; line-height: 1.5; } body { background: #f3f3f3; } /* ...snip... */ 

Wenn Sie mit CSS vertraut sind, können Sie diese Stile ganz nach Ihren WĂŒnschen anpassen! Denken Sie daran, dass Sie in Zukunft möglicherweise einige visuelle Unterschiede bemerken, wenn Sie sich dazu entschließen.


Wenn Sie fertig sind, speichern Sie die CSS-Datei. Unser zuverlÀssiger Entwicklungsserver sollte es sofort abholen und unsere Seite aktualisieren. Schluss mit nacktem HTML-Inhalt!


Orientierung gestylt


Um das Layout unseres Designers teaching-tomster.png , mĂŒssen wir auch das Bild teaching-tomster.png herunterladen, auf das sich unsere CSS-Datei bezieht:


 .tomster { background: url(../assets/images/teaching-tomster.png); /* ...snip... */ } 

Wie wir zuvor erfahren haben, besteht die Ember-Konvention darin, Ihren Quellcode im app Ordner abzulegen. FĂŒr andere Ressourcen wie Bilder und Schriftarten gibt es einen public Ordner. Wir werden dieser Konvention folgen, indem wir die Bilddatei hochladen und in public/assets/images/teaching-tomster.png .


Sowohl Ember CLI als auch der Entwicklungsserver verstehen diese Ordnerkonventionen und stellen diese Dateien dem Browser automatisch zur VerfĂŒgung.


Sie können dies unter http://localhost:4200/assets/images/teaching-tomster.png . Das Bild sollte auch auf der BegrĂŒĂŸungsseite angezeigt werden, an der wir arbeiten. Wenn das Bild wĂ€hrend der Aktualisierung immer noch nicht angezeigt wird, aktualisieren Sie es manuell, damit der Browser eine neue Datei aufnimmt.
gestylt mit tomster


Anwendungsseiten erstellen


In diesem Teil erstellen Sie die ersten Seiten Ihrer Ember-Anwendung und stellen Verbindungen zwischen ihnen her. Am Ende dieses Kapitels sollten zwei neue Seiten vorhanden sein - die Seite "Über uns" und die Seite "Kontakte". Diese Seiten werden mit Ihrer Startseite verlinkt:
Index mit Link
about-with-link
Kontakt-mit-Link


Wenn Sie diese Seiten erstellen, erfahren Sie Folgendes:


  • Routen definieren
  • Verwenden von Routenmustern
  • URL-Anpassung
  • VerknĂŒpfen von Seiten mit der <LinkTo> -Komponente
  • Übergeben von Argumenten und Attributen an Komponenten

Routendefinition


Nachdem wir unsere erste Seite erstellt haben, fĂŒgen wir eine weitere hinzu!


Dieses Mal möchten wir, dass die Seite unter der URL /about gehostet wird. Dazu mĂŒssen wir Ember ĂŒber unseren Plan informieren, diesem Ort eine Seite hinzuzufĂŒgen. Ansonsten geht Ember davon aus, dass wir die falsche URL besucht haben!


Der Ort, an dem zugĂ€ngliche Seiten verwaltet werden, ist der Router. Öffnen Sie app/router.js und nehmen Sie die folgenden Änderungen vor:


Router ĂŒber


Dadurch wird eine Route mit dem Namen "about" hinzugefĂŒgt, die standardmĂ€ĂŸig in der URL /about bereitgestellt wird.


Routenvorlagen verwenden


Jetzt können wir eine neue app/templates/about.hbs mit folgendem Inhalt erstellen:


ĂŒber hbs


Um dies in Aktion zu sehen, rufen Sie http://localhost:4200/about .


Bau-seiten ĂŒber


Damit ist unsere zweite Seite fertig!


Routen mit benutzerdefinierten Pfaden definieren


Wir machen weiter! Lassen Sie uns unsere dritte Seite hinzufĂŒgen. Diesmal ist es ein bisschen anders. Jeder in der Firma nennt dies die "Kontakte" -Seite. Die alte Website, die wir ersetzen, verfĂŒgt jedoch bereits ĂŒber eine Ă€hnliche Seite, die unter der veralteten /getting-in-touch URL bereitgestellt wird.


Wir möchten die vorhandenen URLs fĂŒr die neue Website beibehalten, mĂŒssen jedoch nicht getting-in-touch vollstĂ€ndigen neuen Code eingeben. Zum GlĂŒck können wir es besser machen:



Hier haben wir die contact hinzugefĂŒgt, aber den Pfad fĂŒr die Route explizit angegeben. Auf diese Weise können wir eine veraltete URL beibehalten, jedoch einen neuen, kĂŒrzeren Namen fĂŒr die Route sowie den Namen der Vorlagendatei verwenden.


Apropos Vorlage, erstellen wir es auch. Wir werden die Datei app/templates/contact.hbs mit folgendem Inhalt hinzufĂŒgen:



Ember hĂ€lt sich an strenge Konventionen und angemessene Standardeinstellungen. Wenn wir von vorne anfangen, wĂŒrde uns die Standard-URL /contact der Standardkontakt nichts ausmachen. Wenn die Standardeinstellungen fĂŒr uns jedoch nicht funktionieren, ist dies kein Problem. Wir können Ember fĂŒr unsere BedĂŒrfnisse anpassen!


Nachdem Sie die Route und die Vorlage oben hinzugefĂŒgt haben, sollte eine neue Seite unter der Adresse http://localhost:4200/getting-in-touch .


Kontakt


Erstellen Sie mit der Komponente <LinkTo> Cross-Navigation auf Seiten


Wir haben so viel MĂŒhe darauf verwendet, diese Seiten zu erstellen, aber wir brauchen Leute, die sie finden! Im Internet werden dafĂŒr Hyperlinks verwendet, oder kurz Links.


Ember bietet hervorragende UnterstĂŒtzung fĂŒr Standard-URLs. Wir können unsere Seiten einfach ĂŒber das <a> -Tag mit der entsprechenden href verknĂŒpfen. Wenn Sie jedoch auf diese Links klicken, muss der Browser die Seite vollstĂ€ndig aktualisieren. Dies bedeutet, dass Sie zum Server zurĂŒckkehren mĂŒssen, um die Seite abzurufen, und anschließend alles neu herunterladen mĂŒssen.


Mit Ember können wir mehr tun! Anstelle des einfachen alten <a> -Tags bietet Ember eine Alternative zu <LinkTo> . So könnten Sie es beispielsweise auf den soeben erstellten Seiten verwenden:




Schauen wir uns einmal genauer an, was wir gerade hinzugefĂŒgt haben.


<LinkTo> ist ein Beispiel fĂŒr eine Komponente in Ember. Sie können sie von normalen HTML-Tags unterscheiden, da sie mit einem Großbuchstaben beginnen. Komponenten sind neben normalen HTML-Tags die Bausteine, mit denen wir die BenutzeroberflĂ€che der Anwendung erstellen können.


SpĂ€ter werden wir viel mehr Informationen ĂŒber die Komponenten haben, aber jetzt können Sie sich diese als eine Möglichkeit vorstellen, benutzerdefinierte Tags bereitzustellen, die die in Browsern integrierten Tags ergĂ€nzen.


Mit dem Teil @route=... wir Argumente an die Komponente. Hier verwenden wir dieses Argument, um anzugeben, welche Route wir verbinden möchten. (Beachten Sie, dass dies der Name der Route sein sollte, nicht der Pfad. Daher haben wir "about" anstelle von "/about" und "contact" anstelle von "/getting-in-touch" .)


Komponenten können neben Argumenten auch regulĂ€re HTML-Attribute akzeptieren. In unserem Beispiel haben wir die Klasse "button" zum Stylen hinzugefĂŒgt, aber wir können auch andere Attribute angeben, die wir fĂŒr angemessen halten, z. B. das role ARIA . Sie werden ohne das @ -Zeichen ĂŒbergeben ( class=... Gegensatz zu @class=... ), sodass Ember weiß, dass es sich um regulĂ€re HTML-Attribute handelt.


Unter der Haube generiert die <LinkTo> -Komponente fĂŒr uns ein regulĂ€res <a> -Tag mit der entsprechenden href fĂŒr eine bestimmte Route. Dieses <a> -Tag <a> hervorragend fĂŒr Screenreader und ermöglicht unseren Benutzern, den Link mit einem Lesezeichen zu versehen oder in einem neuen Tab zu öffnen.


Wenn Sie jedoch auf einen dieser speziellen Links klicken, fÀngt Ember einen Mausklick ab, zeigt den Inhalt einer neuen Seite an und aktualisiert die URL - dies alles erfolgt lokal, ohne auf den Server zu warten. Dies vermeidet eine vollstÀndige Seitenaktualisierung.


Wir werden in naher Zukunft mehr darĂŒber erfahren, wie das alles funktioniert. In der Zwischenzeit klicken Sie auf den Link im Browser. Haben Sie bemerkt, wie schnell diese ÜbergĂ€nge auftreten?


Herzlichen GlĂŒckwunsch, Sie sind auf dem Weg zum Seitenmaster!


Automatisiertes Testen


In diesem Teil verwenden Sie die in Ember integrierte Testumgebung, um einige automatisierte Tests fĂŒr Ihre Anwendung zu schreiben. Als Ergebnis erhalten wir eine automatisierte Testsuite, die wir ausfĂŒhren können, um sicherzustellen, dass unsere Anwendung ordnungsgemĂ€ĂŸ funktioniert:



Dabei lernen Sie:


  • Automatisierte Testziele
  • Abnahmetests schreiben
  • Verwenden von Generatoren in der Ember-CLI
  • Testen mit der QUnit Test Library
  • Arbeit mit Testhelfern Ember
  • Testen von Workflow-Methoden

Der Zweck des automatisierten Testens


Wir haben schon viel erreicht! Zusammenfassend: Wir haben bei Null angefangen, ein paar Seiten mit Inhalten hinzugefĂŒgt, alles so gestaltet, dass es schön aussieht, ein Bild von Tomster hinzugefĂŒgt, Links zwischen unseren Seiten hinzugefĂŒgt und es hat ĂŒberraschenderweise funktioniert!


Aber sind wir uns wirklich sicher, dass wirklich alles funktioniert? NatĂŒrlich haben wir ein bisschen gerufen, um sicherzustellen, dass alles wie erwartet aussieht. Aber sind wir sicher, dass wir jede Seite nach der letzten Änderung ĂŒberprĂŒft haben?


Schließlich haben die meisten von uns Erfahrung (oder haben schreckliche Geschichten gehört), wenn eine kleine Änderung in einem Bereich einer Anwendung versehentlich etwas in einem anderen Teil zerstört. Auch wenn wir dort nichts geĂ€ndert haben (und dementsprechend spĂ€ter nicht nachgesehen haben).


Angenommen, wir können eine Checkliste erstellen und diese nach Änderungen auf unserer Website ĂŒberprĂŒfen. Aber dies wird natĂŒrlich außer Kontrolle geraten, wenn wir unserer Anwendung weitere Funktionen hinzufĂŒgen. Es lĂ€uft auch sehr schnell ab. Daher sind solche sich wiederholenden Aufgaben am besten Robotern ĂŒberlassen.


Hmm, Roboter. Das ist eine Idee! Was ist, wenn wir diese Checkliste schreiben und den Computer alles fĂŒr uns ĂŒberprĂŒfen lassen können? Ich denke, wir haben gerade die Idee des automatisierten Testens erfunden! Okay, vielleicht waren wir nicht die Ersten, die dieses Konzept erfunden haben, aber wir haben es unabhĂ€ngig entdeckt.


Verwenden von Generatoren zum Erstellen von Abnahmetests


Sobald wir uns auf dem Kopf streicheln oder den Kuchen aus dem Regal beenden, fĂŒhren wir den folgenden Befehl im Terminal aus:


 $ ember generate acceptance-test super-rentals installing acceptance-test create tests/acceptance/super-rentals-test.js 

In Ember CLI wird dies als Generatorbefehl bezeichnet . Generatoren erstellen automatisch Dateien fĂŒr uns basierend auf Ember-Konventionen und fĂŒllen sie mit den entsprechenden Standardinhalten, Ă€hnlich wie ember new ursprĂŒnglich eine Skeleton-Anwendung fĂŒr uns erstellt hat. Normalerweise folgt es dem Muster, dass ember generate <type> <name> , wobei <type> ist, was wir erzeugen und <name> ist, was wir es nennen möchten.


In diesem Fall haben wir einen Abnahmetest generiert, der sich unter tests/acceptance/super-rentals-test.js .


Der Einsatz von Generatoren ist natĂŒrlich nicht erforderlich. Wir könnten selbst eine Datei erstellen, die dasselbe tun wĂŒrde. Aber Generatoren ersparen uns natĂŒrlich unnötige mentale Anstrengungen, um den richtigen Ordner und Namen zu finden und Zeit fĂŒr das Festlegen von Inhalten zu haben. Schauen Sie sich die Abnahmetestdatei an und ĂŒberzeugen Sie sich selbst.


Zoe erklÀrt ...



Möchten Sie beim Drucken noch mehr sparen? ember generate ... kann zu ember g ... gekĂŒrzt werden ember g ... Es sind 7 Zeichen weniger! Andere Befehle folgen einer Ă€hnlichen Logik.

Wir schreiben Abnahmetests


Akzeptanztests sind eine der Arten automatisierter Tests, die wir bei Ember durchfĂŒhren. , , , — « , », .


:



URL / (test helper) visit Ember. , http://localhost:4200/ enter .


, , , JavaScript await . , , , .


, , await visit . , , , . , , , , .


URL / , URL URL ( / ). currentURL - currentURL , equal . « » . , , , , .


, <h2> , « Super Rentals!» . , , , .


«About Us» , CSS .jumbo a.button . , , « jumbo <a> button» . HTML .


, . , , await .


, , URL- /about .


...



, QUnit , module , test assert . , click , visit currentURL @ember/test-helpers . , import . , .

, ember test --server ember t -s . , . . http://localhost:7357/ .


, , ( ):



, , , , , , , . , index.hbs , <LinkTo> , , (failing) :



!



, , :




, . . , , - .



. , ( : , ) , , « ».


, . — — , ?



. :



:


  • {{yield}}
  • {{outlet}}


<LinkTo> . , , — Ember HTML . !


. , "jumbo" . , :



, , . , , , . , .


. — , . app/components/jumbo.hbs «jumbo» :



, ! , <Jumbo> .


...



, , Ember HTML. jumbo.hbs <Jumbo> , , super-awesome.hbs <SuperAwesome> .

{{yield}}


Ember , . HTML-, , , <Jumbo>some content</Jumbo> . {{yield}} , , .


, :




, , 
 ! , , ! <Jumbo> , - , .



!



.




, , .


, «jumbo» , , . , , . !



, <Jumbo> . :


 $ ember generate component-test jumbo installing component-test create tests/integration/components/jumbo-test.js 

(component test), (rendering test). . , , .


, , :



URL- <Jumbo> . , , , . .


, , , await . , , . , , .



, : .


<NavBar> app/components/nav-bar.hbs :



:




, !



...



<NavBar /> <NavBar></NavBar> . , - , . , Ember !

, , , . , !


? <NavBar> , <Jumbo> . , <NavBar> , , . !




, , <nav> . (accessibility), . , <NavBar> .


!



{{outlet}}


, , . <NavBar> , . . , .


, application.hbs . , , , , . !


, URL-, . , , . , (footer) .


, , , .






{{outlet}} , , {{yield}} , .


! , , . !



1.1 . .


UPDATE: MK1301 .

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


All Articles