svelte 3: Une nouvelle approche du développement frontal
Cet article explore Svelte 3, un cadre JavaScript frontal unique qui se distingue par son processus de compilation. Contrairement aux cadres comme React, qui expédient un grand bundle JavaScript, Svelte compile des applications en code JavaScript significativement plus petit et optimisé. Cette optimisation, obtenue pendant le processus de construction, se traduit par des applications plus rapides et plus efficaces.
Svelte offre également une approche distinctive de la gestion des données et de la manipulation DOM. Il met directement à jour le vrai DOM, éliminant le besoin d'un DOM virtuel, conduisant à des performances améliorées. Ceci, associé à sa création de composants intuitifs et à ses états réactifs intégrés, rend le développement agréable et efficace. Même les développeurs de React ou Vue assaisonnés trouveront Svelte qui vaut la peine d'être exploré. Créons une application simple pour démontrer ses capacités.
Avantages clés de svelte:
Prise de démarrage:
Pour éviter les complexités de regroupement et d'infrastructures, nous suivrons le tutoriel officiel de Svelte. Assurez-vous que le nœud et le git sont installés. Ensuite, exécutez:
npx degit sveltejs/template github-repository-searcher
Cela clones le modèle svelte dans le répertoire github-repository-searcher
et configure l'outillage nécessaire. Ensuite, accédez au répertoire (cd github-repository-searcher
) et exécutez npm install
pour installer des dépendances. Enfin, npm run dev
démarre le serveur de développement à l'aide de Rollup. Accéder à l'application à http://localhost:5000
.
Construire un composant svelte:
Les composants svelte résident dans les fichiers .svelte
. Le modèle fournit App.svelte
, structuré en trois sections:
<code></li>
<style>
/* CSS for styling the list */
</style>
<div class="search-wrapper">
<form class="search-form">
<input type="text" bind:value={userSearchTerm} placeholder="search for repositories" />
</form>
<ul>
{#each filteredRepos as repository}
<li>
<strong>{repository.name}</strong>
<code>{repository.url}
<style>
/ * CSS pour styliser la liste * /
style>
{repository.url} <p>
<code>Search
{/chaque}
App.svelte
repositories
Importer Rechercher </strong> dans <code> app.svelte </p> et l'utiliser conditionnellement en fonction de la disponibilité de <code> des référentiels <p>. <code>$:
Search.svelte
filteredRepos
Réactivité et filtrage: userSearchTerm
repositories
$: <p> dans <code> search.svelte <strong>. Cela garantit que <code> filteredRepos </strong> met à jour chaque fois que <code> ushersearchTerm </p> ou <code> des référentiels <p> modifie. Des approches alternatives utilisant des fonctions ou des auditeurs d'événements sont également discutées, mettant en évidence les avantages des fonctionnalités de réactivité de Svelte. <code>npm run build
build de production:
Run NPM Run build <p> Pour créer un bundle prêt pour la production. La taille du faisceau résultante est généralement faible en raison du processus de compilation de Svelte. </p>
<p> <strong> Conclusion: </strong> </p>
<ul> Svelte offre une alternative convaincante aux cadres traditionnels, mettant l'accent sur l'efficacité et les performances du code. Sa syntaxe intuitive et ses fonctionnalités intégrées simplifient le développement, ce qui en fait un concurrent solide pour le développement frontal. <li>
<strong> </strong> svelte FAQ (version concise): </li> <li>
<strong>
</strong> </li> Qu'est-ce que svelte? <li> Un framework JavaScript compilant à un code optimisé, en passant du travail de l'exécution au temps de construction. <strong>
</strong> </li> En quoi Svelte diffère-t-il de React / Vue? <li> Svelte se compile en code plus petit et plus rapide; React / Vue fait plus de travail dans le navigateur. <strong>
</strong> </li> Comment svelte gère les composants? <li> Les composants sont-ils écrits dans une syntaxe de type HTML / CSS / JS et compilée en JavaScript efficace. <strong>
</strong> </li> Svelte utilise-t-il un Dom virtuel? <li> Non, il met directement le vrai Dom. <strong>
</strong> </li> Qu'est-ce que sveltekit? </ul> Un cadre de niveau supérieur pour créer des applications Web complètes en plus de Svelte. <p>
<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173932009210437.jpg" class="lazy" alt="Svelte 3: A Radical Compiler-based JavaScript Framework" /> </p> Avantages de svelte? <script>
: Contains JavaScript logic.<style>
: Houses scoped CSS (styles are confined to the component).To ensure efficient editing, install a Svelte extension for your code editor.
User Input and GitHub API Interaction:
Our application prompts the user for a GitHub username, then fetches their repositories using the GitHub API. We'll modify App.svelte
:
export let name
line from the <script>
section and update src/main.js
to remove unnecessary props.<main> <form on:submit|preventDefault={onSubmit}> <label for="username">Enter a GitHub username:</label> <input type="text" name="username" placeholder="jackfranklin" bind:value={usernameInputField} /> <button type="submit">Load repositories</button> </form> {#if repositories} <Search repositories={repositories} /> {/if} </main>
let usernameInputField = ""; let repositories = undefined; async function onSubmit() { const url = `https://api.github.com/users/${usernameInputField}/repos`; const response = await fetch(url); repositories = await response.json(); }
Creating and Using the Search Component:
Create Search.svelte
to display and filter repositories. This component accepts repositories
as a prop:
<code class="language-svelte"><script> export let repositories; let userSearchTerm = ""; $: filteredRepos = repositories.filter((repo) => repo.name.toLowerCase().includes(userSearchTerm.toLowerCase()) ); </script> tailles de faisceaux plus petites, performances plus rapides, syntaxe simple, moins de buissier. </code>
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!