• Accueil
  • Info
  • Publicité
  • Privacy & Policy
  • Nous Contacter
No Result
View All Result
Technique de pointe
  • Actualité
  • Technologies
  • Jeu vidéo
  • Mobile
  • Astuces
  • HTML5 / CSS
  • Java Script
  • PHP
  • Article Sponsorisé
  • Astuces
  • Jeu vidéo
  • Nous Contacter
MYCAMER
  • Actualité
  • Mobile
  • Jeu vidéo
    Microsoft Xbox, Sony PlayStation, Nintendo : tour d’horizon des revenus des jeux vidéo

    Microsoft Xbox, Sony PlayStation, Nintendo : tour d’horizon des revenus des jeux vidéo

    10 meilleurs mondes de hub de jeux vidéo

    10 meilleurs mondes de hub de jeux vidéo

    Streaming : les meilleures adaptations cinématographiques de jeux vidéo | Films

    comment le jeu vidéo ‘Stray’ a transpercé les chats

    comment le jeu vidéo ‘Stray’ a transpercé les chats

    Le tournoi de jeux vidéo EVO revient à Las Vegas après deux ans d’absence

    Le tournoi de jeux vidéo EVO revient à Las Vegas après deux ans d’absence

    Venba, un jeu vidéo sur la résonance émotionnelle de la nourriture | Jeux

    Pine Technology Acquisition Corp. annonce le prix d’un premier appel public à l’épargne de 300 000 000 $

    Les dépenses des consommateurs américains en produits de jeux vidéo au deuxième trimestre 2022 ont diminué de 13 % pour atteindre 12,35 milliards de dollars

    Analogue Pocket obtient le premier jeu vidéo au monde à partir de 1962

    Analogue Pocket obtient le premier jeu vidéo au monde à partir de 1962

    Les chefs-d’œuvre sous-estimés du jeu vidéo de Kotaro Uchikoshi

    Les chefs-d’œuvre sous-estimés du jeu vidéo de Kotaro Uchikoshi

  • Developpement web
    • All
    • Language HTML5
    Comment utiliser localStorage en JavaScript

    Comment utiliser localStorage en JavaScript

    Travaillez avec le plus grand dévouement : Shailendra aux officiers

    Travaillez avec le plus grand dévouement : Shailendra aux officiers

    Groupe de réflexion établi avec mandat de fédéralisme coopératif : NITI Aayog

    Groupe de réflexion établi avec mandat de fédéralisme coopératif : NITI Aayog

    Le Premier ministre Modi et le président Murmu font l’éloge de Bajrang Punia pour avoir remporté l’or

    Le Premier ministre Modi et le président Murmu font l’éloge de Bajrang Punia pour avoir remporté l’or

    XSS dans AMP For Email de Gmail rapporte 5 000 $ au chercheur

    XSS dans AMP For Email de Gmail rapporte 5 000 $ au chercheur

    Nevada Baseball annonce l’ajout de personnel d’entraîneurs

    Nevada Baseball annonce l’ajout de personnel d’entraîneurs

    10 Ways Coding Skills Can Improve SEO Efforts

    10 Ways Coding Skills Can Improve SEO Efforts

    Community Surgical Supply Inc. signale une violation de données après qu’une partie non autorisée a crypté des fichiers contenant des informations sensibles sur les consommateurs |  Console et associés, PC

    Community Surgical Supply Inc. signale une violation de données après qu’une partie non autorisée a crypté des fichiers contenant des informations sensibles sur les consommateurs | Console et associés, PC

    10 Best Website Builder Software

    10 Best Website Builder Software

  • Astuces
    Examen de la fureur du Forex 2022 • Benzinga

    Examen de la fureur du Forex 2022 • Benzinga

    Les contributeurs de l’équipe des thèmes WordPress obtiennent un retour sur la proposition d’amélioration de la visibilité des thèmes de blocs dans l’annuaire – WP Tavern

    Les contributeurs de l’équipe des thèmes WordPress obtiennent un retour sur la proposition d’amélioration de la visibilité des thèmes de blocs dans l’annuaire – WP Tavern

    20 idées de revenus passifs pour gagner plus d’argent en 2022

    20 idées de revenus passifs pour gagner plus d’argent en 2022

    Comment localiser un numéro de téléphone ?

    Souhaitez-vous localiser un numéro de téléphone ? Découvrez ici !

    WooCommerce contre Shopify : 6 différences clés

    WooCommerce contre Shopify : 6 différences clés

    Microsoft présente en avant-première la refonte de « WordPress sur App Service » sur Azure – Visual Studio Magazine

    Microsoft présente en avant-première la refonte de « WordPress sur App Service » sur Azure – Visual Studio Magazine

    Qu’est-ce que l’hébergement WordPress ?  |  Tech Radar

    Des milliers de sites WordPress sont mis à jour pour corriger une faille de sécurité dangereuse

    iPhone comme webcam Mac : comment utiliser la caméra de continuité

    iPhone comme webcam Mac : comment utiliser la caméra de continuité

    64,2% des sites utilisent WordPress

    64,2% des sites utilisent WordPress

  • Nous contacter
No Result
View All Result
MYCAMER
No Result
View All Result
Home Actualité

Créer une liste de lecture avec Svelte

Caleb by Caleb
février 24, 2022
in Actualité
0 0
0
Créer une liste de lecture avec Svelte
334
SHARES
2k
VIEWS
Share on FacebookShare on TwitterRedditLinkedin


Svelte a reçu beaucoup d’éloges au cours des deux dernières années et est loin d’être “juste un autre framework frontal”. Il a remporté la «percée de l’année» dans l’enquête State of JS 2019, suivi de la note de satisfaction en 2020. Il a également été élu framework Web le plus apprécié dans l’enquête Stack Overflow 2021.

Svelte séduit les développeurs par sa combinaison d’une petite taille de bundle, de très bonnes performances et d’une facilité d’utilisation. En même temps, il est livré avec beaucoup de goodies. Une solution de gestion d’état simple sur laquelle s’appuyer est déjà fournie, ainsi que des transitions et des animations prêtes à l’emploi. Ce tutoriel d’introduction expliquera comment Svelte y parvient. Les didacticiels suivants de la série expliqueront plus en détail comment implémenter des applications avec Svelte en utilisant les différentes possibilités offertes par Svelte.

La trame de fond svelte

Mais d’abord, une petite histoire en arrière sur Svelte. Bien qu’il ne soit entré dans le courant dominant qu’au début des années 2020, Svelte existe depuis bien plus longtemps.

Le premier commit sur GitHub a eu lieu fin 2016. Son créateur est Rich Harris, un assistant open source dont l’autre invention la plus importante est Rollup, un bundler moderne. Rich Harris a travaillé au magazine d’information Le gardien comme éditeur graphique à l’époque. Sa routine quotidienne consistait à créer des visualisations interactives pour le site Web, et il voulait avoir un outil qui lui permettrait de les écrire facilement sans compromettre la taille ou la vitesse du paquet. En même temps, il voulait quelque chose d’abordable pour que d’autres collègues moins férus de technologie puissent créer rapidement des visualisations.

De ces besoins, Svelte est né. À partir de la salle de rédaction, Svelte a rapidement rassemblé un petit public dans la communauté open source. Mais ce n’est qu’en avril 2019 que Svelte s’est vraiment fait connaître dans le monde. Cette date a marqué la sortie de la version 3, qui était une réécriture complète mettant l’accent sur l’expérience et l’accessibilité des développeurs. Depuis lors, la popularité de Svelte a beaucoup augmenté, plus de mainteneurs ont rejoint l’équipe, et Rich Harris a même rejoint Vercel pour travailler sur Svelte à plein temps.

Pour des tutoriels approfondis sur Svelte, et ses différences avec React et Vue, consultez Svelte 3 : un framework JavaScript basé sur un compilateur radical.

Construire une liste de livres simple

Plongeons dans Svelte ! Nous allons créer une petite liste de livres qui nous permettra d’ajouter et de supprimer des livres de notre liste de lecture. Le résultat final ressemblera à l’image ci-dessous.

Application finale

Nous allons commencer par échafauder notre projet à partir d’un modèle de projet. Nous utiliserons l’officiel Modèle svelte. Des alternatives seraient d’utiliser un Modèle alimenté par Vite ou d’utiliser SvelteKitun framework au-dessus de Svelte pour créer des applications complètes avec routage intégré, mais nous le garderons aussi simple que possible pour ce didacticiel.

Après avoir téléchargé le modèle, passez à son dossier et exécutez npm install, qui télécharge tous les packages dont nous avons besoin pour démarrer. Ensuite, nous passerons à App.svelteoù nous remplacerons le contenu par une version HTML uniquement pour disposer les éléments visuels souhaités :

<h4>Add Book</h4>
<input type="text" />
<h4>My Books</h4>
<ul>
  <li>A book</li>
</ul>

Nous pouvons écrire le code ci-dessus directement au niveau supérieur du fichier Svelte ; nous n’avons pas besoin d’ajouter d’éléments wrapper. La syntaxe de Svelte est un sur-ensemble de HTML, donc tout ce qui est valide dans un fichier HTML est valide dans un fichier Svelte.

La question est maintenant de savoir comment y intégrer les parties dynamiques. Nous allons commencer par ajouter une liste statique au script et la rendre via une boucle :

<script>
  let books = ['Learning Svelte', 'The Zen of Cooking Tea'];
</script>

<label>
  <h4>Add Book</h4>
  <input type="text" />
</label>
<h4>My Books</h4>
<ul>
  {#each books as book}
    <li>{book}</li>
  {/each}
</ul>

Nous avons ajouté un script balise dans laquelle nous mettons notre logique JavaScript liée au composant. Cette logique est exécutée à chaque montage du composant. Nous améliorons également le HTML avec une syntaxe Svelte spéciale pour créer une boucle et imprimer le titre de chaque livre. Comme vous pouvez le voir, Svelte a une syntaxe distincte pour les blocs de flux de contrôle, contrairement à Vue ou Angular, qui ajoutent de telles fonctionnalités sous la forme d’attributs spéciaux. Cela rend le code plus lisible, car vous pouvez le repérer plus facilement. Cela rend également inutile la création d’éléments wrapper si vous souhaitez contenir plusieurs éléments de niveau supérieur dans le bloc de flux de contrôle.

Le titre d’un livre est généré en entourant la variable d’accolades. En général, chaque fois que vous rencontrez une accolade dans le modèle, vous savez que vous entrez quelque chose lié à Svelte. Nous examinerons la syntaxe du modèle plus en détail dans la partie 2 de cette série de didacticiels.

Réagir à l’entrée de l’utilisateur

Nous pouvons maintenant rendre une liste arbitraire de titres de livres, définie par notre books variable. Et si vous ajoutiez un nouveau livre ? Pour ce faire, nous devons renforcer notre logique dans le <script> tag et connectez-le au <input> élément:

<script>
  let books = ['Learning Svelte', 'The Zen of Cooking Tea'];
  let newBook = '';

  function addBook(evt) {
    if (evt.key === 'Enter') {
      books = [...books, newBook];
      newBook = '';
    }
  }
</script>

<label>
  <h4>Add Book</h4>
  <input type="text" bind:value={newBook} on:keydown={addBook} />
</label>
<h4>My Books</h4>
<ul>
  {#each books as book}
    <li>{book}</li>
  {/each}
</ul>

Nous avons ajouté une nouvelle variable appelée newBook, qui doit refléter la valeur d’entrée. Pour ce faire, nous le lions au <input> en écrivant bind:value={newBook}. Cela établit une liaison bidirectionnelle, de sorte que chaque fois que l’utilisateur saisit du texte dans le <input>, newBook mises à jour, et si newBook est mis à jour dans le <script> balise, la valeur d’affichage de <input> changements. Nous aurions pu faire la même chose avec de simples attributs dynamiques, mais cela nous permet d’économiser du code – un schéma de pensée que vous rencontrerez souvent dans Svelte.

Lorsque l’utilisateur appuie Entrer, nous voulons ajouter le nouveau titre du livre à la liste. Pour ce faire, nous ajoutons un écouteur d’événement DOM. Pour dire à Svelte de s’accrocher à l’événement, nous ajoutons simplement deux-points entre on et le reste du nom de l’événement, donc dans ce cas c’est on:keydown. Après cela, nous utilisons les accolades et plaçons le nom de la fonction à l’intérieur. La fonction est appelée chaque fois que l’événement se déclenche. Vous trouverez plus d’informations sur la syntaxe de ce modèle dans la partie 2 de cette série de didacticiels.

La fonction à appeler dans ce cas est addBookdans lequel on vérifie l’événement clavier, et si l’utilisateur a bien appuyé Entrernous mettons à jour le books variable. Remarquez l’absence d’un this contexte comme nous le trouvons dans Angular ou Vue 2, ou le manque d’objets de valeur spéciaux comme dans Vue 3, ou le manque de setState dans Réagir. Svelte n’a pas besoin de syntaxe supplémentaire dans ce cas pour savoir que la variable a été mise à jour. Cela peut ressembler à de la magie, mais aussi à du “JavaScript tout simple” en même temps.

Pour comprendre comment Svelte y parvient, nous devons regarder sous le capot. Que fait réellement Svelte avec un .svelte fichier, et quand le traite-t-il ? La réponse: Svelte est en fait un compilateur ! Il fait la plupart du travail avant même que votre code ne soit chargé dans le navigateur. Svelte analyse le code et le transforme en JavaScript normal. Pendant l’analyse, il est capable de voir que des variables comme newBook sont utilisés dans le modèle, de sorte que les affectations à celui-ci entraîneront des rendus. La sortie de la compilation enveloppera donc ces affectations avec des appels à un $$invalidate fonction, qui planifiera un rendu de ce composant exact pour la prochaine peinture du navigateur. C’est le secret des excellentes performances de Svelte : il sait à l’avance quelles parties pourraient déclencher des rendus et n’a ensuite besoin de travailler qu’à ces endroits précis, en mettant à jour chirurgicalement le DOM. C’est aussi la raison pour laquelle les tailles de bundle des applications Svelte sont si petites : tout ce qui n’est pas nécessaire ne fera tout simplement pas partie de la sortie, donc Svelte peut laisser de côté chaque partie de son minuscule runtime qui n’est pas nécessaire. Un Svelte Hello World ! app a une taille de paquet de seulement 2,5 Ko !

La seule chose à laquelle il faut faire attention est que Svelte ne recherche que des missions. C’est pourquoi nous devons faire books = [...books, newBook]; ou books.push(newBook); books = books;. Sinon, Svelte ne le saurait pas books a mis à jour.

Sortie de compilation

La touche finale

Nous l’avons fait! Nous pouvons maintenant afficher et ajouter des livres à notre liste ! Cela n’a pas l’air si joli, alors apportons quelques touches finales à notre interface utilisateur. Tout d’abord, nous allons ajouter du CSS pour styliser nos éléments :

<!-- script and html code... -->

<style>
  input {
    padding: 5px 10px;
  }
  li {
    list-style: none;
  }
  ul {
    padding: 5px 0;
  }
</style>

Comme vous pouvez le voir, nous ajoutons simplement un <style> tag à notre .svelte fichier et continuez à y écrire du CSS normal. Si vous craignez que le code ci-dessus stylise tout <input>, <li> ou <ul> balises dans l’ensemble de l’application, soyez assuré que ce ne sera pas le cas. Svelte étend les styles par défaut, de sorte qu’ils ne s’appliquent qu’au composant dans lequel ils sont définis. Si vous souhaitez définir quelque chose de manière globale, enveloppez le sélecteur avec le :global une fonction. Si, par exemple, vous souhaitez styliser tous <input>s dans l’application, le code serait :global(input) { padding: 5px 10px; }.

Le style est mieux maintenant. Terminons avec une transition pour une meilleure UX : nous voulons que les nouveaux éléments de la liste apparaissent en fondu. Pour ce faire, il nous suffit d’atteindre l’une des transitions et animations intégrées de Svelte et de les appliquer :

<script>
  import { fade } from 'svelte/transition';
  
</script>

<!-- input ... -->
<h4>My Books</h4>
<ul>
  {#each books as book}
    <li transition:fade>{book}</li>
  {/each}
</ul>

<!-- styling ... -->

Et c’est tout! Il suffit d’importer l’une des transitions intégrées et de l’appliquer en ajoutant transition:fade à l’élément, nous obtenons cette transition douce en fondu. Notre mini application est maintenant terminée. Cela ne contient pas encore la barre supérieure et le dégradé d’arrière-plan, mais il devrait être facile maintenant pour vous de l’ajouter également. Voici le résultat final :

<script>
  import { fade } from 'svelte/transition';

  let books = ['Learning Svelte', 'The Zen of Cooking Tea'];
  let newBook = '';

  function addBook(evt) {
    if (evt.key === 'Enter') {
      books = [...books, newBook];
      newBook = '';
    }
  }
</script>

<label>
  <h4>Add Book</h4>
  <input type="text" bind:value={newBook} on:keydown={addBook} />
</label>
<h4>My Books</h4>
<ul>
  {#each books as book}
    <li transition:fade>{book}</li>
  {/each}
</ul>

<style>
  input {
    padding: 5px 10px;
  }
  li {
    list-style: none;
  }
  ul {
    padding: 5px 0;
  }
</style>

Considérations architecturales

Nous avons vu comment écrire une petite application dans Svelte avec seulement 32 lignes de code. Nous n’avons fait qu’effleurer la surface, bien sûr. Une application complète nécessite une sorte de gestion d’état, plusieurs composants et des moyens d’intégrer ces composants les uns aux autres.

Par exemple, il serait judicieux de diviser l’affichage d’un élément de tâche en un composant distinct, car nous ajouterons des fonctionnalités telles que la modification du nom sur place ou le marquer comme terminé. Avoir tout cela dans un seul composant deviendrait difficile à maintenir au fil du temps. Heureusement, l’utilisation d’autres composants est aussi simple que de l’importer en tant qu’importation par défaut à partir d’un autre fichier Svelte et d’interagir avec lui d’une manière similaire à ce que nous avons déjà vu avec des éléments DOM normaux. Nous examinerons plus en détail l’interaction des composants dans la partie 5 de cette série.

Un autre exemple serait la gestion des tâches. À l’heure actuelle, ils sont gérés à l’intérieur du composant et il n’y a aucune connexion à un backend. Si nous devions ajouter des appels d’API, nous mélangerions la logique de l’interface utilisateur avec l’interaction backend, qui est généralement mieux gérée en dehors des composants pour une meilleure séparation des préoccupations. Nous pouvons utiliser les magasins Svelte pour cela, que nous verrons dans la partie 4.

Comme vous pouvez le voir, Svelte a des solutions à toutes nos exigences, et nous les examinerons au cours de cette série.

À vos marques, prêts… Svelte ?

Alors, est-il sûr d’utiliser Svelte pour votre prochain projet ? Votre responsable peut vous demander si Svelte sera là dans les années à venir ou s’épuisera comme les précédentes stars du framework frontal. Il n’y a pas une seule grande entreprise qui soutient l’ensemble du développement de Svelte comme c’est le cas pour Angular et React, mais Vue a déjà montré que ce n’est pas un problème. De plus, comme indiqué au début, Rich Harris, le créateur de Svelte, y travaille désormais à plein temps. Avec l’augmentation continue de la popularité de Svelte, il n’y a aucun signe qu’il ira nulle part dans les années à venir.

Un autre aspect du choix d’un framework est l’écosystème et ses outils. L’écosystème est encore petit par rapport à React, mais de nouvelles bibliothèques sortent chaque jour, et il existe déjà une poignée de très bonnes bibliothèques de composants. Dans le même temps, étant donné que Svelte est si proche du HTML et du JavaScript vanille, il est très facile d’intégrer n’importe quelle bibliothèque HTML/JavaScript standard existante dans votre base de code, sans avoir besoin de bibliothèques wrapper.

En ce qui concerne l’outillage, Svelte a l’air plutôt bien. Il y a un extension officielle du code VS qui est activement maintenu, ainsi qu’un serveur de langage sous-jacent qui peut être utilisé par de nombreux autres IDE pour intégrer Intellisense. IntelliJ a également un plugin pour Svelte et a récemment embauché le créateur derrière pour travailler chez JetBrains. Il existe également divers outils pour intégrer Svelte à divers bundlers. Et oui, vous pouvez également utiliser TypeScript avec Svelte.

Si vous cherchez à créer un site Web ou une application Web à part entière, vous pourriez également être intéressé à vérifier SvelteKit (Voir notre Guide du débutant pour SvelteKit). Il offre une expérience de développement exceptionnelle et est livré avec un routeur flexible basé sur un système de fichiers. Il vous permet également de déployer sur de nombreuses plates-formes différentes telles que Vercel, Netlify, votre propre serveur Node ou simplement un bon vieux serveur de fichiers statique, en fonction des fonctionnalités et des besoins de votre application.

Faits en bref sur Svelte

En bref, voici les points importants à retenir sur Svelte :

  • il a un mainteneur à plein temps
  • il a un bon outillage
  • ses caractéristiques sont stables
  • son écosystème grandit
  • SvelteKit est disponible pour créer rapidement des applications

Prochaines étapes

Svelte est définitivement prêt à être utilisé pour votre prochain projet !

C’était la première partie de Série en 6 parties sur SitePoint Premium. Dans la partie 2, nous examinerons de près la syntaxe du modèle. Dans la partie 3, nous examinerons les instructions réactives et comment elles nous aident à réagir aux changements de variables ou à dériver des variables calculées. La partie 4 examinera les magasins, ce qui nous aidera avec la logique à l’extérieur et à travers les fichiers Svelte, et que nous pouvons également utiliser pour la gestion de l’état. La partie 5 examine divers concepts d’interaction de composants. Enfin, dans la partie 6, nous verrons comment tester les applications Svelte.

Cette série est également disponible sur Amazon ici : Svelte : Guide du débutant.

Nous espérons avoir suscité votre intérêt pour Svelte !

— to www.sitepoint.com

Get real time update about this post categories directly on your device, subscribe now.

Unsubscribe
Caleb

Caleb

Stay Connected

  • 86.7k Followers
  • 172k Subscribers

Articles populaires

  • 10 problèmes courants de l’iPhone 13 et comment les résoudre

    10 problèmes courants de l’iPhone 13 et comment les résoudre

    4421 shares
    Share 1768 Tweet 1105
  • Comment installer phpMyAdmin sur Debian 11 Bullseye (Apache)

    1164 shares
    Share 466 Tweet 291
  • Comment réparer le décalage d’Instagram sur iPhone et Android

    512 shares
    Share 205 Tweet 128
  • 2 façons d’installer le serveur LAMP sur Ubuntu 22.04 | 20.04

    486 shares
    Share 194 Tweet 122
  • Le procès dit que le jeu d’arcade Key Master de Sega est intentionnellement truqué

    418 shares
    Share 167 Tweet 105

Follow Our Page

Follow Us

    Go to the Customizer > JNews : Social, Like & View > Instagram Feed Setting, to connect your Instagram account.
Facebook Twitter Youtube Vimeo Instagram

We bring you the best Premium WordPress Themes that perfect for news, magazine, personal blog, etc. Check our landing page for details.

Category

  • Actualité
  • Article Sponsorisé
  • Astuces
  • Featured
  • Jeu vidéo
  • Language HTML5
  • Mobile
  • portrait
  • Technologies
  • Uncategorized

Recent News

Microsoft Xbox, Sony PlayStation, Nintendo : tour d’horizon des revenus des jeux vidéo

Microsoft Xbox, Sony PlayStation, Nintendo : tour d’horizon des revenus des jeux vidéo

août 8, 2022
Warzone est-il en panne?  Comment vérifier l’état du serveur Warzone

Warzone est-il en panne? Comment vérifier l’état du serveur Warzone

août 8, 2022

© 2022 JNews - Premium WordPress news & magazine theme by Jegtheme.

No Result
View All Result
  • Actualité
  • Mobile
  • Jeu vidéo
  • Developpement web
  • Astuces
  • Nous contacter

© 2022 JNews - Premium WordPress news & magazine theme by Jegtheme.

Welcome Back!

Sign In with Facebook
Sign In with Google
OR

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
fr French
ar Arabiczh-CN Chinese (Simplified)en Englishfr Frenchde Germanit Italianru Russianes Spanish

Add New Playlist

This website uses cookies. By continuing to use this website you are giving consent to cookies being used. Visit our Privacy and Cookie Policy.