Aller au contenu

Cette intégration Astro permet le rendu et l’hydratation côté client pour vos composants Preact.

Preact est une bibliothèque qui vous permet de créer des composants d’interface utilisateur interactifs pour le web. Si vous souhaitez créer des fonctionnalités interactives sur votre site à l’aide de JavaScript, vous préférerez peut-être utiliser son format de composant plutôt que d’utiliser directement les API du navigateur.

Preact est également un excellent choix si vous avez déjà utilisé React. Preact fournit la même API que React, mais dans un format beaucoup plus petit de 3 Ko. Il supporte même le rendu de nombreux composants React en utilisant l’option de configuration compat (voir ci-dessous).

Vous souhaitez en savoir plus sur Preact avant d’utiliser cette intégration ? Consultez “Learn Preact” (EN), un tutoriel interactif sur leur site web.

Astro inclut une commande astro add pour automatiser l’installation des intégrations officielles. Si vous préférez, vous pouvez installer les intégrations manuellement à la place.

Pour installer @astrojs/preact, exécutez ce qui suit depuis le répertoire de votre projet et suivez les instructions :

Fenêtre du terminal
npx astro add preact

Si vous rencontrez des problèmes, n’hésitez pas à nous les signaler sur GitHub et essayez les étapes d’installation manuelle ci-dessous.

Tout d’abord, installez le paquet @astrojs/preact :

Fenêtre du terminal
npm install @astrojs/preact

La plupart des gestionnaires de paquets installent également les dépendances associées. Si vous voyez un avertissement “Cannot find package ‘preact’” (ou similaire) lorsque vous démarrez Astro, vous devez installer Preact :

Fenêtre du terminal
npm install preact

Ensuite, appliquez l’intégration à votre fichier astro.config.* en utilisant la propriété integrations :

astro.config.mjs
import { defineConfig } from 'astro/config';
import preact from '@astrojs/preact';
export default defineConfig({
// ...
integrations: [preact()],
});

Pour utiliser votre premier composant Preact dans Astro, consultez notre documentation sur les frameworks d’interface utilisateur. Vous y découvrirez :

  • 📦 comment les composants du framework sont chargés,
  • 💧 les options d’hydratation côté client, et
  • 🤝 les possibilités de mélanger et d’imbriquer les frameworks.

Consultez également notre Documentation sur l’intégration Astro pour en savoir plus sur les intégrations.

L’intégration Astro Preact gère le rendu des composants Preact et possède ses propres options. Modifiez ces options dans le fichier astro.config.mjs qui est l’endroit où se trouvent les paramètres d’intégration de votre projet.

Pour une utilisation basique, vous n’avez pas besoin de configurer l’intégration Preact.

Vous pouvez activer preact/compat, la couche de compatibilité de Preact pour rendre les composants React sans avoir besoin d’installer ou de livrer les grandes bibliothèques de React aux navigateurs web de vos utilisateurs.

Pour ce faire, passez un objet à l’intégration Preact et mettez compat : true.

astro.config.mjs
import { defineConfig } from 'astro/config';
import preact from '@astrojs/preact';
export default defineConfig({
integrations: [preact({ compat: true })],
});

Avec l’option compat activée, l’intégration Preact rendra les composants React ainsi que les composants Preact dans votre projet et vous permettra également d’importer des composants React à l’intérieur des composants Preact. Pour en savoir plus, consultez “Switching to Preact (from React)” sur le site web de Preact.

Lorsque vous importez des bibliothèques de composants React, afin de remplacer les dépendances react et react-dom par preact/compat, vous pouvez utiliser overrides pour le faire.

package.json
{
"overrides": {
"react": "npm:@preact/compat@latest",
"react-dom": "npm:@preact/compat@latest"
}
}

Consultez les documents pnpm overrides et yarn resolutions pour leurs fonctionnalités respectives.

Ajouté à la version : @astrojs/preact@3.3.0

Vous pouvez activer Preact devtools durant le développement en passant un objet avec devtools : true à votre configuration d’intégration preact() :

astro.config.mjs
import { defineConfig } from 'astro/config';
import preact from '@astrojs/preact';
export default defineConfig({
// ...
integrations: [preact({ devtools: true })],
});

Lorsque vous utilisez plusieurs frameworks JSX (React, Preact, Solid) dans le même projet, Astro doit déterminer quelles transformations spécifiques au framework JSX doivent être utilisées pour chacun de vos composants. Si vous n’avez ajouté qu’une seule intégration de framework JSX à votre projet, aucune configuration supplémentaire n’est nécessaire.

Utilisez les options de configuration include (obligatoire) et exclude (optionnelle) pour spécifier quels fichiers appartiennent à quel framework. Fournissez un tableau de fichiers et/ou de dossiers à inclure pour chaque framework que vous utilisez. Des caractères joker peuvent être utilisés pour inclure plusieurs chemins de fichiers.

Nous recommandons de placer les composants communs du framework dans le même dossier (par exemple /composants/react/ et /composants/solid/) pour faciliter la spécification de vos inclusions, mais ce n’est pas obligatoire :

astro.config.mjs
import { defineConfig } from 'astro/config';
import preact from '@astrojs/preact';
import react from '@astrojs/react';
import svelte from '@astrojs/svelte';
import vue from '@astrojs/vue';
import solid from '@astrojs/solid-js';
export default defineConfig({
// Permettre à de nombreux frameworks de prendre en charge tous les différents types de composants.
// Aucun `include` n'est nécessaire si vous n'utilisez qu'un seul framework JSX !
integrations: [
preact({
include: ['**/preact/*'],
}),
react({
include: ['**/react/*'],
}),
solid({
include: ['**/solid/*'],
}),
],
});
  • L’exemple Astro Preact montre comment utiliser un composant Preact interactif dans un projet Astro.
  • L’exemple Astro Nanostores montre comment partager l’état entre différents composants — et même différents frameworks ! — dans un projet Astro.

Plus d'intégrations

Framework d'interface utilisateur

Adaptateurs SSR

Autres intégrations

Contribuer

Comment pouvons-nous vous aider ?

Créer une issue GitHub

Le moyen le plus rapide d'alerter notre équipe d'un problème.

Communauté