L’API servant à interagir avec un composant de Svelte 3 et 4 est différente de celle de Svelte 5.
Notez que cette page ne s’applique pas aux composants en mode legacy d’une application Svelte 5.
Un composant prévu pour le client — c’est-à-dire un composant compilé avec generate: 'dom' (ou
l’option generate non définie) est une classe JavaScript.
or ,props(property)ComponentConstructorOptions<Record<string,any>>.props?:Record<string,any>|undefined:{ // en supposant que App.svelte contient quelque chose
// comme `export let answer`
answer(property)answer:number:42}});
Les options d’initialisation suivantes peuvent être fournies :
option
par défaut
description
target
aucun
Un HTMLElement ou ShadowRoot cible dans lequel rendre le composant. Cette option est obligatoire
anchor
null
Un enfant de target qui doit être immédiatement après le composant à rendre
props
{}
Un objet de propriétés à fournir au composant
context
new Map()
Une Map de contexte racine contenant des paires clé-valeur à fournir au composant
hydrate
false
Voir ci-dessous
intro
false
Si true, les transitions seront jouées lors du rendu initial, sans attendre un changement d'état
Les enfants existante de target sont laissés à leur place.
L’option hydrate dit à Svelte d’améliorer le DOM existant (en général venant du rendu côté
serveur) plutôt que de créer de nouveaux éléments. Ceci ne fonctionne que si le composant a été
compilé avec l’option hydratable: true. L’hydratation des
éléments <head> ne fonctionne correctement que si leur rendu côté serveur a également été compilé
avec hydratable: true, ce qui ajoute un marqueur à chaque élément de <head> afin que le
composant sache quels élément du <head> il est responsable d’enlever lors de l’hydratation.
Bien que les enfants de target sont normalement laissés intacts, hydrate: true va supprimer tous
les enfants de la cible. Pour cette raison, l’option anchor ne peut pas être utilisée avec
hydrate: true.
Le DOM existant n’a pas besoin de correspondre au composant — Svelte va “réparer” le DOM au fur et à
mesure.
The console module provides a simple debugging console that is similar to the
JavaScript console mechanism provided by web browsers.
The module exports two specific components:
A Console class with methods such as console.log(), console.error() and console.warn() that can be used to write to any Node.js stream.
A global console instance configured to write to process.stdout and
process.stderr. The global console can be used without importing the node:console module.
Warning: The global console object's methods are neither consistently
synchronous like the browser APIs they resemble, nor are they consistently
asynchronous like all other Node.js streams. See the note on process I/O for
more information.
Example using the global console:
console.log('hello world');// Prints: hello world, to stdoutconsole.log('hello %s','world');// Prints: hello world, to stdoutconsole.error(newError('Whoops, something bad happened'));// Prints error message and stack trace to stderr:// Error: Whoops, something bad happened// at [eval]:5:15// at Script.runInThisContext (node:vm:132:18)// at Object.runInThisContext (node:vm:309:38)// at node:internal/process/execution:77:19// at [eval]-wrapper:6:22// at evalScript (node:internal/process/execution:76:60)// at node:internal/main/eval_string:23:3constname='Will Robinson';console.warn(`Danger ${name}! Danger!`);// Prints: Danger Will Robinson! Danger!, to stderr
Example using the Console class:
constout=getStreamSomehow();consterr=getStreamSomehow();constmyConsole=newconsole.Console(out,err);myConsole.log('hello world');// Prints: hello world, to outmyConsole.log('hello %s','world');// Prints: hello world, to outmyConsole.error(newError('Whoops, something bad happened'));// Prints: [Error: Whoops, something bad happened], to errconstname='Will Robinson';myConsole.warn(`Danger ${name}! Danger!`);// Prints: Danger Will Robinson! Danger!, to err
Prints to stdout with newline. Multiple arguments can be passed, with the
first used as the primary message and all additional used as substitution
values similar to printf(3)
(the arguments are all passed to util.format()).
constcount=5;console.log('count: %d',count);// Prints: count: 5, to stdoutconsole.log('count:',count);// Prints: count: 5, to stdout
Si un composant est compilé avec accessors: tru, chaque instance aura des getters et des setters
correspondant à chacune des props du composant. Définir une valeur déclenchera alors une mise à jour
synchrone plutôt que la mise à jour par défaut asynchrone habituellement déclenchée par
component.$set(...).
Par défaut, accessors vaut false, à moins que vous ne compiliez en tant qu’élément personnalisé.
consolenamespaceconsolevarconsole:Console
The console module provides a simple debugging console that is similar to the
JavaScript console mechanism provided by web browsers.
The module exports two specific components:
A Console class with methods such as console.log(), console.error() and console.warn() that can be used to write to any Node.js stream.
A global console instance configured to write to process.stdout and
process.stderr. The global console can be used without importing the node:console module.
Warning: The global console object's methods are neither consistently
synchronous like the browser APIs they resemble, nor are they consistently
asynchronous like all other Node.js streams. See the note on process I/O for
more information.
Example using the global console:
console.log('hello world');// Prints: hello world, to stdoutconsole.log('hello %s','world');// Prints: hello world, to stdoutconsole.error(newError('Whoops, something bad happened'));// Prints error message and stack trace to stderr:// Error: Whoops, something bad happened// at [eval]:5:15// at Script.runInThisContext (node:vm:132:18)// at Object.runInThisContext (node:vm:309:38)// at node:internal/process/execution:77:19// at [eval]-wrapper:6:22// at evalScript (node:internal/process/execution:76:60)// at node:internal/main/eval_string:23:3constname='Will Robinson';console.warn(`Danger ${name}! Danger!`);// Prints: Danger Will Robinson! Danger!, to stderr
Example using the Console class:
constout=getStreamSomehow();consterr=getStreamSomehow();constmyConsole=newconsole.Console(out,err);myConsole.log('hello world');// Prints: hello world, to outmyConsole.log('hello %s','world');// Prints: hello world, to outmyConsole.error(newError('Whoops, something bad happened'));// Prints: [Error: Whoops, something bad happened], to errconstname='Will Robinson';myConsole.warn(`Danger ${name}! Danger!`);// Prints: Danger Will Robinson! Danger!, to err
Prints to stdout with newline. Multiple arguments can be passed, with the
first used as the primary message and all additional used as substitution
values similar to printf(3)
(the arguments are all passed to util.format()).
constcount=5;console.log('count: %d',count);// Prints: count: 5, to stdoutconsole.log('count:',count);// Prints: count: 5, to stdout
À la différence des composants client, les composants serveur n’ont pas d’existence après leur rendu
– leur unique mission est de créer du HTML et du CSS. Pour cette raison, leur API est un peu
différente.
Un composant serveur expose une méthode render qui peut être appelée avec des props optionnelles.
Elle renvoie un objet avec des propriétés head, html et css, où head contient le contenu de
tous les éléments <svelte:head> rencontrés.
Vous pouvez importer un composant Svelte directement dans Node en utilisant svelte/register.
It's possible to tell SvelteKit how to type objects inside your app by declaring the App namespace. By default, a new project will have a file called src/app.d.ts containing the following:
The export {} line exists because without it, the file would be treated as an ambient module which prevents you from adding import declarations.
If you need to add ambient declare module declarations, do so in a separate file like src/ambient.d.ts.
By populating these interfaces, you will gain type safety when using event.locals, event.platform, and data from load functions.
It's possible to tell SvelteKit how to type objects inside your app by declaring the App namespace. By default, a new project will have a file called src/app.d.ts containing the following:
The export {} line exists because without it, the file would be treated as an ambient module which prevents you from adding import declarations.
If you need to add ambient declare module declarations, do so in a separate file like src/ambient.d.ts.
By populating these interfaces, you will gain type safety when using event.locals, event.platform, and data from load functions.
.renderany({answer(property)answer:number:42});
La méthode .render() accepte les paramètres suivants :
paramètre
défaut
description
props
{}
Un objet de propriétés à fournir au composant
options
{}
Un objet d'options
L’objet options accepte les options suivantes :
paramètre
défaut
description
context
new Map()
Une Map de paires clé-valeur représentant un contexte racine à fournir au composant