Svelte

framework JavaScript

Svelte est un framework JavaScript libre et à code ouvert écrit par Rich Harris (d) Voir avec Reasonator. Le framework est écrit en TypeScript. Son code source utilise la licence MIT et est hébergé sur GitHub[3].

Svelte
Description de l'image Svelte Logo.svg.

Informations
Développé par Rich Harris (d)Voir et modifier les données sur Wikidata
Première version [1]Voir et modifier les données sur Wikidata
Dernière version 5.0.0 ()[2]Voir et modifier les données sur Wikidata
Dépôt github.com/sveltejs/svelteVoir et modifier les données sur Wikidata
Écrit en JavaScript et TypeScriptVoir et modifier les données sur Wikidata
Système d'exploitation MultiplateformeVoir et modifier les données sur Wikidata
Type Framework JavaScript (en)
Langage de programmation
Compilateur
Framework web
Bibliothèque JavaScriptVoir et modifier les données sur Wikidata
Licence Licence MITVoir et modifier les données sur Wikidata
Site web svelte.devVoir et modifier les données sur Wikidata

Histoire

modifier

Avant de créer Svelte, Rich Harris a créé Ractive.js[4].

La toute première version de Svelte date du 29 novembre 2016. Elle a été écrite en Javascript. Ce n'est qu'à partir de la version 3 que Svelte utilise TypeScript.

SvelteKit, un autre framework basé sur Svelte, est annoncé en octobre 2020 avant d'être publié en bêta en mars 2021. Il sort officiellement en version 1.0 le 14 décembre 2022[5]. Il a pour but d'étendre les fonctionnalités du simple rendu de composants, et peut à certains égards être assimilé à ce que sont Next et Nuxt pour React et Vue respectivement[6].

Réactivité

modifier

Le nom de Svelte dénote l'intention de son auteur de rendre le framework léger, performant et efficace. En effet, Svelte a été construit comme un compilateur contrairement à la plupart des autres framework JavaScript[7]. Le code envoyé en production ne comporte donc seulement que du code traduit en pur JavaScript, HTML et CSS, ce qui participe de sa performance et de sa légèreté. Par ailleurs, Svelte ne s'appuie par sur un DOM virtuel pour procéder aux changements de ce dernier, préférant réaliser des changements « chirurgicalement » sur le DOM directement, lorsque l'état change[8].

Exemple d'utilisation

modifier

Les composants Svelte sont définis dans des fichiers .svelte, qui sont des fichiers HTML étendus avec une syntaxe de modèle similaire à JSX.

<script>
    let name = "Henry"
</script>

<h1>Bonjour {name} !</h1>

<style>
	h1 {
		color: blue;
	}
</style>

La balise <script> permet d'écrire du code en JavaScript standard, mais avec la particularité que les blocs de code préfixés d'un $: sont interprétés comme des déclarations réactives : la réassignation d'une des variables du bloc entraîne la ré-exécution du bloc.

<script>
    let nombreDeClics = 1
    $: double = nombreDeClics * 2
</script>

<p>{nombreDeClics} * 2 = {double}</p>

<button on:click={() => nombreDeClics = nombreDeClics + 1}>nombreDeClics</button>

Svelte 5 - les Runes

modifier

Notes et références

modifier
  1. « https://svelte.dev/blog/frameworks-without-the-framework »
  2. « https://github.com/sveltejs/svelte/releases/tag/svelte%405.0.0 » (consulté le )
  3. (en) « Svelte - Cybernetically enhanced web apps »  , sur github.com (consulté le )
  4. « About the Svelte JavaScript framework », sur ValueLogic | Blog, (consulté le )
  5. (en) Svelte Team, « Announcing SvelteKit 1.0 », sur svelte.dev, (consulté le )
  6. (en) « Introduction • Docs • SvelteKit », sur kit.svelte.dev (consulté le )
  7. (en) « Course Intro », sur vercel.com (consulté le )
  8. (en) Rich Harris, « Virtual DOM is pure overhead », sur svelte.dev, (consulté le )

Liens externes

modifier