Heim >Web-Frontend >js-Tutorial >Svelte App -Projekt: Erstellen Sie die Nachrichten -App -Benutzeroberfläche des Tagesplanetens
Sufle ist eine neue JavaScript -UI -Bibliothek, die in vielerlei Hinsicht zu modernen UI -Bibliotheken wie React ähnelt. Ein wichtiger Unterschied ist, dass das Konzept eines virtuellen Doms nicht verwendet wird.
In diesem Tutorial werden wir Svelte vorstellen, indem wir eine von The Daily Planet, einer fiktive Zeitung aus der Superman -Welt, inspirierte Nachrichtenanmeldung erstellen.
svelte nutzt einen neuen Ansatz zum Aufbau von Benutzernschnittstellen. Anstatt die notwendigen Arbeiten im Browser zu erledigen, verschiebt sich Svelte, die zu einer Kompilierungsphase auf der Entwicklungsmaschine passt, wenn Sie Ihre App erstellen.
Kurz gesagt, so funktioniert Svelte (wie im offiziellen Blog angegeben):
svelte läuft bei erstellen Sie die Zeit und konvertiert Ihre Komponenten in hocheffiziente imperative
Code, der die DOM operativ aktualisiert. Infolgedessen können Sie ehrgeizige Anwendungen mit hervorragenden Leistungsmerkmalen schreiben.
svelte ist schneller als die leistungsstärksten Frameworks (React, Vue und Angular), da es kein virtuelles DOM verwendet und nur die Teile, die sich ändern, operativ aktualisiert.
Wir lernen die grundlegenden Konzepte wie Svelte -Komponenten und wie man Datenarrays abrufen und iterieren. Wir lernen auch, wie Sie ein SVELTE -Projekt initialisieren, einen lokalen Entwicklungsserver ausführen und das endgültige Bundle erstellen.
Sie müssen ein paar Voraussetzungen haben, damit Sie diesem Tutorial bequem folgen können, wie:
node.js kann einfach auf der offiziellen Website installiert werden oder Sie können auch NVM verwenden, um mehrere Knotenversionen in Ihrem System einfach zu installieren und zu verwalten.
Wir werden eine JSON -API als Quelle der Nachrichten für unsere App verwenden. Daher müssen Sie einen API -Schlüssel erhalten, indem Sie einfach ein Konto kostenlos erstellen und Ihren API -Schlüssel zur Kenntnis nehmen.
Lassen Sie uns nun mit dem Aufbau unserer Daily Planet News -Anwendung mit dem DEGIT -Tool zur Generierung von SufleT -Projekten aufbauen.
Sie können entweder Degit weltweit auf Ihrem System installieren oder das NPX -Tool verwenden, um es von NPM auszuführen. Öffnen Sie ein neues Terminal und führen Sie den folgenden Befehl aus:
npx degit sveltejs/template dailyplanetnews
Navigieren Sie als nächstes im Ordner Ihres Projekts und führen Sie den Entwicklungsserver mit den folgenden Befehlen aus:
<span>cd dailyplanetnews </span><span>npm run dev </span>
Ihr Dev -Server hört von der Adresse http: // localhost: 5000 zu. Wenn Sie Änderungen vornehmen, werden sie wieder aufgebaut und live in Ihre laufende App aufgeladen.
Öffnen Sie die Main.js -Datei Ihres Projekts, und Sie sollten den folgenden Code finden:
<span>import <span>App</span> from './App.svelte'; </span> <span>const app = new App({ </span> <span>target: document.body, </span> <span>props: { </span> <span>name: 'world' </span> <span>} </span><span>}); </span> <span>export default app; </span>
Hier wird die Svelte -App durch das Erstellen und Exportieren einer Instanz der Root -Komponente, die herkömmlich genannt wird, eingeladen. Die Komponente nimmt ein Objekt mit einem Ziel- und Requisitenattributen an.
Das Ziel enthält das DOM -Element, in dem die Komponente montiert wird, und die Requisiten enthält die Eigenschaften, die wir an die App -Komponente übergeben möchten. In diesem Fall ist es nur ein Name mit dem welt Wert.
Öffnen Sie die Datei app.svelte, und Sie sollten den folgenden Code finden:
<span><span><span><script</span>></span><span> </span></span><span><span> <span>export let name; </span></span></span><span><span></span><span><span></script</span>></span> </span> <span><span><span><style</span>></span><span> </span></span><span><span> <span>h1 { </span></span></span><span><span> <span>color: purple; </span></span></span><span><span> <span>} </span></span></span><span><span></span><span><span></style</span>></span> </span> <span><span><span><h1</span>></span>Hello {name}!<span><span></h1</span>></span> </span>
Dies ist die Stammkomponente unserer Anwendung. Alle anderen Komponenten sind Kinder von App.
Komponenten in Selte Verwenden Sie die Erweiterung .svelte für Quelldateien, die alle JavaScript, Stile und Markup für eine Komponente enthalten.
Der Export lassen Sie sich den Namen; Die Syntax erstellt eine Komponenten -Requisite namens Name. Wir verwenden eine variable Interpolation - {...} -, um den Wert anzuzeigen, der über den Namen der Namensantrieb übergeben wurde.
Sie können einfach einen einfachen alten JavaScript, CSS und HTML verwenden, mit dem Sie vertraut sind, um Svelte -Komponenten zu erstellen. Svelte fügt HTML auch eine Template -Syntax für die variable Interpolation und das Schleifen durch Datenlisten usw. hinzu usw.
Da es sich um eine kleine App handelt, können wir einfach die erforderliche Funktionalität in der App -Komponente implementieren.
importieren Sie im <script> -Tag die Onmount () -Methode aus "Sufle" und definieren Sie die API_Key-, Artikel- und URL -Variablen, die den Nachrichten -API -Schlüssel, die abgerufenen Nachrichtenartikel und den Endpunkt enthalten, der Daten liefert: </script>
<span><script> </span> <span>export let name; </span> <span>import <span>{ onMount }</span> from "svelte"; </span> <span>const API_KEY = "<YOUR_API_KEY_HERE>"; </span> <span>const URL = <span>`https://newsapi.org/v2/everything?q=comics&sortBy=publishedAt&apiKey=<span>${API_KEY}</span>`</span>; </span> <span>let articles = []; </span> <span></script> </span>
Onmount ist eine Lebenszyklusmethode. Hier ist, was das offizielle Tutorial dazu sagt:
Jede Komponente hat einen Lebenszyklus , der beim Erstellen beginnt und endet, wenn sie zerstört wird. Es gibt eine Handvoll Funktionen, mit denen Sie während dieses Lebenszyklus Code in wichtigen Momenten ausführen können. Der am häufigsten verwendete, ist Onmount, der nach dem ersten zum ersten Mal in den Dom.
ausgeführt wird
Verwenden wir als nächstes die Fetch -API, um Daten aus dem Nachrichtenendpunkt abzurufen und die Artikel in der Artikelvariable zu speichern, wenn die Komponente im DOM montiert ist:
npx degit sveltejs/template dailyplanetnews
Da die Fetch () -Methode ein JavaScript -Versprechen zurückgibt, können wir die Async/Ause -Syntax verwenden, um den Code synchron aussehen zu lassen und Rückrufe zu beseitigen.
Fügen Sie als nächstes das folgende HTML -Markup hinzu, um die Benutzeroberfläche unserer Anwendung zu erstellen und die Nachrichtendaten anzuzeigen:
<span>cd dailyplanetnews </span><span>npm run dev </span>
Wir verwenden den einzelnen Block, um die Nachrichtenartikel zu schleifen, und zeigen den Titel, die Beschreibung, die URL und die URLTOIMage jedes Artikels.
Das Daily Planet -Logo und die Überschrift stammen aus dieser gemeinnützigen Nachrichtenorganisation, die von DC -Comics inspiriert ist.
Wir nutzen Kalam, eine handgeschriebene Schriftart bei Google -Schriftarten, also öffnen Sie die öffentliche/index.html -Datei und fügen Sie das folgende Tag hinzu:
<span>import <span>App</span> from './App.svelte'; </span> <span>const app = new App({ </span> <span>target: document.body, </span> <span>props: { </span> <span>name: 'world' </span> <span>} </span><span>}); </span> <span>export default app; </span>
Gehen Sie als nächstes zur App.selte -Datei zurück und fügen Sie die folgenden Stile hinzu:
<span><span><span><script</span>></span><span> </span></span><span><span> <span>export let name; </span></span></span><span><span></span><span><span></script</span>></span> </span> <span><span><span><style</span>></span><span> </span></span><span><span> <span>h1 { </span></span></span><span><span> <span>color: purple; </span></span></span><span><span> <span>} </span></span></span><span><span></span><span><span></style</span>></span> </span> <span><span><span><h1</span>></span>Hello {name}!<span><span></h1</span>></span> </span>
Dies ist ein Screenshot unserer Daily News -App:
Nachdem Sie Ihre Anwendung entwickelt haben, können Sie die Produktionsbündel erstellen, indem Sie den Befehl Build in Ihrem Terminal ausführen:
<span><script> </span> <span>export let name; </span> <span>import <span>{ onMount }</span> from "svelte"; </span> <span>const API_KEY = "<YOUR_API_KEY_HERE>"; </span> <span>const URL = <span>`https://newsapi.org/v2/everything?q=comics&sortBy=publishedAt&apiKey=<span>${API_KEY}</span>`</span>; </span> <span>let articles = []; </span> <span></script> </span>
Der Befehl erzeugt ein minifiedes und produktionsbereites Bundle, das Sie auf Ihrem bevorzugten Hosting-Server hosten können.
lasst uns jetzt die Anwendung jetzt mit ZEIT hosten.
Zeit jetzt ist eine Cloud -Plattform für Websites und serverlose Funktionen, mit denen Sie Ihre Projekte in einem .now.sh- oder persönlichen Domain bereitstellen können.
Gehen Sie zurück zu Ihrem Terminal und führen Sie den folgenden Befehl aus, um jetzt CLI zu installieren:
<span><script> </span> <span>// [...] </span> <span>onMount(async function() { </span> <span>const response = await fetch(URL); </span> <span>const json = await response.json(); </span> articles <span>= json["articles"]; </span> <span>}); </span><span></script> </span>
Navigieren Sie als nächstes zum öffentlichen Ordner und führen Sie den Befehl nun aus:
<span><span><span><h1</span>></span> </span> <span><span><span><img</span> src<span>="https://dailyplanetdc.files.wordpress.com/2018/12/cropped-daily-planet-logo.jpg?w=656&h=146"</span> /></span> </span> <span><span><span><p</span> class<span>="about"</span>></span> </span> The Daily Planet is where heroes are born and the story continues. We are proud to report on the planet, daily. <span><span><span></p</span>></span> </span><span><span><span></h1</span>></span> </span> <span><span><span><div</span> class<span>="container"</span>></span> </span> {#each articles as article} <span><span><span><div</span> class<span>="card"</span>></span> </span> <span><span><span><img</span> src<span>="{article.urlToImage}"</span>></span> </span> <span><span><span><div</span> class<span>="card-body"</span>></span> </span> <span><span><span><h3</span>></span>{article.title}<span><span></h3</span>></span> </span> <span><span><span><p</span>></span> {article.description} <span><span></p</span>></span> </span> <span><span><span><a</span> href<span>="{article.url}"</span>></span>Read story<span><span></a</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span> {/each} <span><span><span></div</span>></span> </span>
Das ist es! Ihre Anwendung wird in der Cloud bereitgestellt. In unserem Fall ist es bei öffentlich-kyqab3g5j.now.sh.
erhältlichSie können den Quellcode dieser Anwendung aus diesem GitHub -Repository finden.
In diesem Tutorial haben wir eine einfache Nachrichten -App mit Svelte erstellt. Wir haben auch gesehen, was Svelte ist und wie ein Svelte -Projekt mit dem Degit -Tool von NPM erstellt wird.
Sie können sich auf die offiziellen Dokumente verweisen, um ein detailliertes Tutorial zu erhalten, um mehr über jede schlanke Funktion zu erfahren.
Das obige ist der detaillierte Inhalt vonSvelte App -Projekt: Erstellen Sie die Nachrichten -App -Benutzeroberfläche des Tagesplanetens. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!