


Projet de l'application Svelte: Créez l'application de l'information de la planète quotidienne
Feb 14, 2025 am 10:17 AM
svelte est une nouvelle bibliothèque d'interface utilisateur JavaScript qui est similaire à bien des égards aux bibliothèques d'interface utilisateur modernes comme React. Une différence importante est qu'il n'utilise pas le concept d'un dom virtuel.
Dans ce tutoriel, nous allons présenter Svelte en construisant une application d'actualités inspirée de The Daily Planet, un journal fictif du monde Superman.
Les plats clés
- svelte est une nouvelle bibliothèque d'interface utilisateur JavaScript qui n'utilise pas de Dom virtuel, ce qui le rend plus rapide que les frameworks les plus puissants comme React, Vue et Angular. Il déplace le travail nécessaire à une phase de temps de compilation sur la machine de développement lors de la création de l'application.
- Le tutoriel fournit un guide étape par étape sur la création d'une application d'actualités inspirée de The Daily Planet, un journal fictif du monde Superman. Cela comprend l'initialisation d'un projet Svelte, l'exécution d'un serveur de développement local et la construction du bundle final.
- Le tutoriel couvre également l'utilisation de l'outil Degit pour générer des projets Svelte, récupérer les données d'un point de terminaison de l'information et créer l'interface utilisateur pour l'application.
- Après avoir développé l'application, on peut créer les faisceaux de production en exécutant la commande build dans le terminal et hébergez l'application à l'aide de Zeit maintenant, une plate-forme cloud pour les sites Web et les fonctions sans serveur.
sur svelte
svelte utilise une nouvelle approche pour créer des interfaces utilisateurs. Au lieu de faire le travail nécessaire dans le navigateur, Svelte déplace qui fonctionne vers une phase de temps de compilation qui se produit sur la machine de développement lorsque vous construisez votre application.
En un mot, c'est ainsi que fonctionne Svelte (comme indiqué dans le blog officiel):
svelte fonctionne à Build Time , convertissant vos composants en code très efficace impératif qui met à jour le DOM. En conséquence, vous êtes en mesure d'écrire des applications ambitieuses avec d'excellentes caractéristiques de performance.
svelte est plus rapide que les frameworks les plus puissants (React, Vue et Angular) car il n'utilise pas un DOM virtuel et ne met à jour que les pièces qui changent.
Nous allons apprendre les concepts de base comme les composants Svelte et comment récupérer et itérer sur les tableaux de données. Nous apprendrons également à initialiser un projet Svelte, à exécuter un serveur de développement local et à construire le bundle final.
Prérequis
Vous devez avoir quelques conditions préalables, vous pouvez donc suivre ce tutoriel confortablement, comme:
- Familiarité avec HTML, CSS et JavaScript (ES6),
- node.js et npm installés sur votre machine de développement.
Node.js peut être facilement installé à partir du site officiel ou vous pouvez également utiliser NVM pour installer et gérer facilement plusieurs versions de Node dans votre système.
Nous utiliserons une API JSON comme source de nouvelles pour notre application, vous devez donc obtenir une clé API en créant simplement un compte gratuit et en prenant note de votre clé API.
Pour commencer
Maintenant, commen?ons à construire notre application quotidienne de nouvelles de Planet en utilisant l'outil DEGIT pour générer des projets svelte.
Vous pouvez soit installer Degit globalement sur votre système ou utiliser l'outil NPX pour l'exécuter à partir de NPM. Ouvrez un nouveau terminal et exécutez la commande suivante:
npx degit sveltejs/template dailyplanetnews
Ensuite, naviguez dans le dossier de votre projet et exécutez le serveur de développement à l'aide des commandes suivantes:
<span>cd dailyplanetnews </span><span>npm run dev </span>
Votre serveur de développement écoutera à partir de l'adresse HTTP: // LocalHost: 5000. Si vous effectuez des modifications, ils seront reconstruits et relevés en direct dans votre application en cours d'exécution.
Ouvrez le fichier main.js de votre projet, et vous devriez trouver le code suivant:
<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>
C'est là que l'application Svelte est amorcée en créant et en exportant une instance du composant racine, conventionnellement appelé application. Le composant prend un objet avec une cible et des attributs d'accessoires.
La cible contient l'élément DOM où le composant sera monté, et les accessoires contient les propriétés que nous voulons transmettre au composant de l'application. Dans ce cas, c'est juste un nom avec la valeur world .
Ouvrez le fichier app.svelte, et vous devriez trouver le code suivant:
<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>
Il s'agit du composant racine de notre application. Tous les autres composants seront les enfants de l'application.
Les composants de Svelte utilisent l'extension .svelte pour les fichiers source, qui contiennent tous les javascript, styles et balisage pour un composant.
L'exportation let le nom; La syntaxe crée un accessoire composant appelé nom. Nous utilisons l'interpolation variable - {...} - pour afficher la valeur réalisée via le nom Prop.
Vous pouvez simplement utiliser un vieux JavaScript, CSS et HTML simples que vous connaissez pour créer des composants Svelte. Svelte ajoute également une syntaxe de modèle à HTML pour l'interpolation et la boucle variables via des listes de données, etc.
Puisqu'il s'agit d'une petite application, nous pouvons simplement implémenter les fonctionnalités requises dans le composant de l'application.
Dans la balise <script>, importez la méthode onMount () de "svelte" et définissez l'API_KEY, les articles et les variables URL qui contiendront la clé de l'API de nouvelles, les articles de presse récupérés et le point final qui fournit des données: </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 est une méthode de cycle de vie. Voici ce que le tutoriel officiel en dit:
Chaque composant a un cycle de vie qui commence lorsqu'il est créé et se termine lorsqu'il est détruit. Il existe une poignée de fonctions qui vous permettent d'exécuter du code aux moments clés de ce cycle de vie. Celui que vous utiliserez le plus souvent sur le point, qui s'exécute après que le composant soit rendu pour la première fois au dom.
Ensuite, utilisons l'API Fetch pour récupérer les données du point de terminaison de l'information et stockons les articles de la variable d'articles lorsque le composant est monté dans le dom:
npx degit sveltejs/template dailyplanetnews
étant donné que la méthode fetch () renvoie une promesse JavaScript, nous pouvons utiliser la syntaxe asynchrone / attendre pour rendre le code synchrone et éliminer les rappels.
Ensuite, ajoutons le balisage HTML suivant pour créer l'interface utilisateur de notre application et afficher les données d'actualités:
<span>cd dailyplanetnews </span><span>npm run dev </span>
Nous utilisons le bloc de chaque bloc pour boucler les articles de presse et nous affichons le titre, la description, l'URL et l'URLTOIM de chaque article.
Le logo Daily Planet et le titre sont empruntés à cette organisation de nouvelles à but non lucratif inspirée par DC Comics.
Nous utiliserons Kalam, une police manuscrite disponible à partir de polices Google, alors ouvrez le fichier public / index.html et ajoutez la balise suivante:
<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>
Ensuite, revenez au fichier app.svelte et ajoutez les styles suivants:
<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>
Il s'agit d'une capture d'écran de notre application quotidienne de nouvelles:
Batiment pour la production
Après avoir développé votre application, vous pouvez créer les faisceaux de production en exécutant la commande build dans votre terminal:
<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>
La commande produira un bundle minifié et prêt pour la production que vous pouvez héberger sur votre serveur d'hébergement préféré.
hébergeons maintenant l'application en utilisant Zeit maintenant.
Zeit est désormais une plate-forme cloud pour les sites Web et les fonctions sans serveur que vous pouvez utiliser pour déployer vos projets sur un domaine .now.sh ou personnel.
Revenez à votre terminal et exécutez la commande suivante pour installer maintenant CLI:
<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>
Ensuite, accédez au dossier public et exécutez la commande maintenant:
<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>
c'est tout! Votre application sera déployée dans le cloud. Dans notre cas, il est disponible auprès de public-kyqab3g5j.now.sh.
Vous pouvez trouver le code source de cette application à partir de ce référentiel GitHub.
Conclusion
Dans ce tutoriel, nous avons construit une application de nouvelles simple à l'aide de Svelte. Nous avons également vu ce qu'est Svelte et comment créer un projet Svelte en utilisant l'outil Degit de NPM.
Vous pouvez vous référer aux documents officiels pour un tutoriel détaillé pour en savoir plus sur chaque fonctionnalité svelte.
Les questions fréquemment posées (FAQ) sur la création d'une application d'actualité avec Svelte
Quels sont les principaux avantages de l'utilisation de Svelte pour créer une application d'actualités?
svelte est un compilateur JavaScript moderne qui vous permet d'écrire du code JavaScript facile à comprendre qui est ensuite compilé à un code impératif très efficace qui manipule directement le dom. Lors de la création d'une application d'actualités, Svelte offre plusieurs avantages. Premièrement, il fournit un code plus simple et plus propre, ce qui permet aux développeurs de comprendre et de maintenir le code. Deuxièmement, les applications Svelte sont très performantes. étant donné que Svelte s'exécute au moment de la construction, il convertit les composants de l'application en code impératif très efficace qui met à jour le DOM. Il en résulte des temps de chargement plus rapides et une expérience utilisateur plus fluide. Enfin, Svelte est basé sur des composants, tout comme React et Vue, ce qui facilite la création d'interfaces utilisateur complexes.
Comment puis-je ajouter un nouvel article à l'application d'actualité construite avec Svelte?
L'ajout d'un nouvel article à votre application Svelte News consiste à créer un nouveau composant pour l'article, puis à l'importer dans le composant parent pertinent. Dans le nouveau composant, vous pouvez définir le contenu de l'article et toutes les métadonnées associées comme l'auteur et la date publiée. Une fois le composant créé, vous pouvez l'importer dans le composant parent à l'aide de l'instruction IMPORT. Ensuite, vous pouvez l'ajouter à la méthode de rendu du composant parent où vous souhaitez que l'article apparaisse.
Comment puis-je implémenter une fonctionnalité de recherche dans mon application Svelte News?
Implémentation d'une fonction de recherche dans Une application Svelte News implique la création d'un composant de recherche et l'ajout de la gestion de l'état pour suivre l'entrée de recherche. Vous pouvez utiliser les fonctionnalités de réactivité intégrées de Svelte pour mettre à jour les articles affichés en fonction de l'entrée de recherche. Lorsque l'entrée de recherche change, vous pouvez filtrer la liste des articles pour inclure uniquement ceux qui correspondent à l'entrée de recherche.
Comment puis-je classer les articles de presse dans mon application svelte?
Catégoriser les articles de presse dans Une application Svelte peut être réalisée en ajoutant une propriété de catégorie à chaque article. Cette propriété peut ensuite être utilisée pour filtrer les articles en fonction de la catégorie sélectionnée. Vous pouvez créer un composant de catégories qui affiche une liste de catégories. Lorsqu'une catégorie est sélectionnée, vous pouvez mettre à jour les articles affichés pour n'inclure que ceux de la catégorie sélectionnée.
Comment puis-je ajouter l'authentification de l'utilisateur à mon application de nouvelles svelte?
Ajout d'authentification utilisateur à un L'application Svelte News peut être effectuée en utilisant diverses méthodes, telles que l'utilisation du service d'authentification Firebase ou un serveur backend avec JWT (JSON Web Tokens). Vous devez créer un composant d'authentification où les utilisateurs peuvent saisir leurs informations d'identification de connexion. Lors de la soumission du formulaire, ces informations d'identification sont envoyées au service d'authentification ou au serveur backend pour vérification. Si les informations d'identification sont valides, l'utilisateur est authentifié et a accordé l'accès à l'application.
Comment puis-je rendre mon application Svelte Responsive?
Rendre une application Svelte Responsive implique l'utilisation de requêtes multimédias CSS pour ajuster la disposition de l'application en fonction de la taille de l'écran. Svelte vous permet d'écrire du code CSS dans le même fichier que votre code JavaScript et HTML, ce qui facilite le style de vos composants. Vous pouvez définir différents styles pour différentes tailles d'écran pour vous assurer que votre application est bonne sur tous les appareils.
Comment puis-je ajouter des notifications push à mon application de nouvelles svelte?
Ajout de notifications push à une nouvelle Svelte L'application peut être effectuée à l'aide d'un service comme la messagerie Cloud Firebase. Vous devrez enregistrer votre application auprès du service, puis ajouter le code nécessaire à votre application pour gérer les notifications push. Cela implique généralement d'ajouter un travailleur de service à votre application qui écoute les événements push et affiche la notification lors de la re?ue.
Comment puis-je ajouter une section de commentaire à mon application de nouvelles svelte?
Ajout de Une section de commentaires à une application Svelte News consiste à créer un composant de commentaires et à ajouter la gestion de l'état pour suivre les commentaires. Vous pouvez utiliser les fonctionnalités de réactivité intégrées de Svelte pour mettre à jour les commentaires en fonction de l'entrée utilisateur. Lorsqu'un utilisateur soumet un commentaire, vous pouvez l'ajouter à la liste des commentaires et mettre à jour les commentaires affichés.
Comment puis-je optimiser les performances de mon application Svelte News?
Optimisation des performances de Une application Svelte News peut impliquer plusieurs stratégies. Premièrement, vous pouvez utiliser les outils intégrés de Svelte pour le fractionnement du code et le chargement paresseux pour charger uniquement le code nécessaire pour la vue actuelle. Deuxièmement, vous pouvez optimiser vos images et autres actifs statiques pour réduire la taille de leur fichier. Enfin, vous pouvez utiliser un travailleur de service pour mettre en cache les actifs de votre application et les servir à partir du cache, réduisant le temps de chargement.
Comment puis-je déployer mon application de nouvelles svelte?
Déployer A Svelte News L'application peut être effectuée en utilisant diverses méthodes, telles que l'utilisation d'un service d'hébergement de site statique comme Netlify ou Vercel, ou une plate-forme cloud comme Google Cloud ou AWS. Vous devez créer votre application pour la production à l'aide de la commande NPM Run build, qui crée un dossier public avec votre application compilée. Ce dossier peut ensuite être téléchargé sur votre service d'hébergement ou votre plate-forme cloud.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Il existe trois fa?ons courantes d'initier des demandes HTTP dans Node.js: utilisez des modules intégrés, Axios et Node-Fetch. 1. Utilisez le module HTTP / HTTPS intégré sans dépendances, ce qui convient aux scénarios de base, mais nécessite un traitement manuel de la couture des données et de la surveillance des erreurs, tels que l'utilisation de https.get () pour obtenir des données ou envoyer des demandes de post via .write (); 2.AXIOS est une bibliothèque tierce basée sur la promesse. Il a une syntaxe concise et des fonctions puissantes, prend en charge l'async / attendre, la conversion JSON automatique, l'intercepteur, etc. Il est recommandé de simplifier les opérations de demande asynchrones; 3.Node-Fetch fournit un style similaire à la récupération du navigateur, basé sur la promesse et la syntaxe simple

Les types de données JavaScript sont divisés en types primitifs et types de référence. Les types primitifs incluent la cha?ne, le nombre, le booléen, le nul, un non défini et le symbole. Les valeurs sont immuables et les copies sont copiées lors de l'attribution des valeurs, de sorte qu'elles ne se affectent pas; Les types de référence tels que les objets, les tableaux et les fonctions stockent les adresses de mémoire, et les variables pointant vers le même objet s'afferchent mutuellement. Le typeof et l'instance de OFF peuvent être utilisés pour déterminer les types, mais prêtent attention aux problèmes historiques de typeofnull. Comprendre ces deux types de différences peut aider à écrire un code plus stable et fiable.

Bonjour, développeurs JavaScript! Bienvenue dans JavaScript News de cette semaine! Cette semaine, nous nous concentrerons sur: le différend de marque d'Oracle avec Deno, les nouveaux objets Time JavaScript sont pris en charge par les navigateurs, les mises à jour Google Chrome et certains outils de développeurs puissants. Commen?ons! Le différend de marque d'Oracle avec la tentative de Deno Oracle d'enregistrer une marque "JavaScript" a provoqué la controverse. Ryan Dahl, le créateur de Node.js et Deno, a déposé une pétition pour annuler la marque, et il pense que JavaScript est un niveau ouvert et ne devrait pas être utilisé par Oracle

La promesse est le mécanisme central pour gérer les opérations asynchrones en JavaScript. Comprendre les appels de cha?ne, la gestion des erreurs et les combinants est la clé pour ma?triser leurs applications. 1. L'appel de la cha?ne renvoie une nouvelle promesse à travers. Puis () pour réaliser la concaténation des processus asynchrones. Chaque .then () re?oit le résultat précédent et peut renvoyer une valeur ou une promesse; 2. La gestion des erreurs doit utiliser .catch () pour attraper des exceptions pour éviter les défaillances silencieuses, et peut renvoyer la valeur par défaut dans Catch pour continuer le processus; 3. Combinateurs tels que promesse.all () (réussi avec succès uniquement après tout succès), promesse.race () (le premier achèvement est retourné) et promesse.allsetTled () (en attente de toutes les achèvements)

Cacheapi est un outil fourni par le navigateur pour mettre en cache les demandes de réseau, qui est souvent utilisée en conjonction avec travailleur de service pour améliorer les performances du site Web et l'expérience hors ligne. 1. Il permet aux développeurs de stocker manuellement des ressources telles que des scripts, des feuilles de style, des photos, etc.; 2. Il peut faire correspondre les réponses du cache en fonction des demandes; 3. Il prend en charge la suppression des caches spécifiques ou la nettoyage du cache entier; 4. Il peut mettre en ?uvre des stratégies de priorité de cache ou de priorité de réseau grace à l'écoute des événements Fetch; 5. Il est souvent utilisé pour le support hors ligne, accélérez la vitesse d'accès répétée, préchargement des ressources clés et du contenu de mise à jour des antécédents; 6. Lorsque vous l'utilisez, vous devez faire attention au contr?le de la version du cache, aux restrictions de stockage et à la différence entre le mécanisme de mise en cache HTTP.

La boucle d'événement de JavaScript gère les opérations asynchrones en coordonnant les piles d'appels, les webapis et les files d'attente de taches. 1. La pile d'appels exécute du code synchrone, et lors de la rencontre de taches asynchrones, il est remis à WebAPI pour le traitement; 2. Une fois que le WebAPI a terminé la tache en arrière-plan, il met le rappel dans la file d'attente correspondante (macro tache ou micro tache); 3. La boucle d'événement vérifie si la pile d'appels est vide. S'il est vide, le rappel est retiré de la file d'attente et poussé dans la pile d'appels pour l'exécution; 4. Micro taches (comme Promise. puis) ??prendre la priorité sur les taches macro (telles que Settimeout); 5. Comprendre la boucle d'événements permet d'éviter de bloquer le thread principal et d'optimiser l'ordre d'exécution du code.

Les bulles d'événements se propagent de l'élément cible vers l'extérieur vers le n?ud d'ancêtre, tandis que la capture d'événements se propage de la couche externe vers l'intérieur vers l'élément cible. 1. événements Bubbles: Après avoir cliqué sur l'élément enfant, l'événement déclenche l'auditeur de l'élément parent vers le haut. Par exemple, après avoir cliqué sur le bouton, il sortira d'abord cliqué sur l'enfant, puis parent. 2. Capture d'événement: définissez le troisième paramètre sur true, afin que l'auditeur soit exécuté dans l'étape de capture, tels que le déclenchement de l'écouteur de capture de l'élément parent avant de cliquer sur le bouton. 3. Les utilisations pratiques incluent la gestion unifiée des événements d'éléments enfants, le prétraitement d'interception et l'optimisation des performances. 4. Le flux d'événements DOM est divisé en trois étapes: capture, cible et bulle, et l'écouteur par défaut est exécuté dans l'étape de la bulle.

Dans les tableaux JavaScript, en plus de la carte et du filtre, il existe d'autres méthodes puissantes et rarement utilisées. 1. La réduction peut non seulement résumer, mais également compter, se regrouper, aplatir les tableaux et construire de nouvelles structures; 2. Find et FindIndex sont utilisés pour trouver des éléments ou des index individuels; 3.Il et tout sont utilisés pour déterminer si les conditions existent ou que toutes les personnes se rencontrent; 4.Sort peut être trié mais changera le tableau d'origine; 5. Faites attention à la copie du tableau lorsque vous l'utilisez pour éviter les effets secondaires. Ces méthodes rendent le code plus concis et efficace.
