You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -15,7 +16,7 @@ Les transitions de vue et la prise en charge du routage côté client d'Astro so
15
16
- La possibilité de [personnaliser entièrement tous les aspects de l'animation de transition](#personnalisation-des-animations) et de créer vos propres animations.
16
17
- Un moyen de transporter des éléments HTML de la page actuelle à la suivante pendant la navigation.
17
18
- L'option d'[empêcher la navigation côté client pour les liens qui ne sont pas des pages](#contrôle-du-routeur).
18
-
- Le [contrôle du comportement de secours](#gestion-de-solution-de-secours) pour les navigateurs qui ne prennent pas encore en charge les API de Transition de Vue.
19
+
- Le [contrôle du comportement de repli](#contrôle-de-la-stratégie-de-repli) pour les navigateurs qui ne prennent pas encore en charge les API de Transition de Vue.
19
20
- La prise en charge automatique de [`prefers-reduced-motion`](#prefers-reduced-motion).
20
21
21
22
:::note
@@ -33,7 +34,7 @@ Cela présente certains avantages, comme l’état partagé entre les pages et l
33
34
L'ajout du composant intégré `<ClientRouter />` d'Astro :
34
35
-[intercepte la navigation de la page](#processus-de-navigation-du-côté-client) et vous donne un contrôle considérable sur ce processus.
35
36
- étend et améliore certaines fonctionnalités des API de transition de vue/navigation.
36
-
- vous permet de [configurer des stratégies de secours](#gestion-de-solution-de-secours) lorsque [la prise en charge native du navigateur fait défaut](https://developer.mozilla.org/en-US/docs/Web/API/View_Transition_API#browser_compatibility).
37
+
- vous permet de [configurer des stratégies de repli](#contrôle-de-la-stratégie-de-repli) lorsque [la prise en charge native du navigateur fait défaut](https://developer.mozilla.org/en-US/docs/Web/API/View_Transition_API#browser_compatibility).
37
38
38
39
Cependant, à mesure que les API des navigateurs et les standards Web évoluent, l'utilisation du routage côté client d'Astro (`<ClientRouter />`) pour cette fonctionnalité supplémentaire [deviendra de plus en plus inutile](https://astro.build/blog/future-of-astro-zero-js-view-transitions/). Nous vous recommandons de vous tenir informé de l'état actuel des API des navigateurs afin de [déterminer si vous avez toujours besoin du routage côté client d'Astro](https://events-3bg.pages.dev/jotter/astro-view-transitions/) pour les fonctionnalités que vous utilisez.
39
40
@@ -319,7 +320,7 @@ Les liens avec l'attribut `data-astro-reload` seront ignorés par le routeur et
319
320
320
321
### Déclenchement de la navigation
321
322
322
-
Vous pouvez aussi déclencher la navigation côté client via des événements qui ne sont pas normalement écoutés par le routeur `<ClientRouter />` en utilisant `navigate`. Cette fonction du module `astro:transitions/client` peut être utilisée dans les scripts et dans les composants du framework qui sont hydratés avec une [directive client](/fr/reference/directives-reference/#directives-client).
323
+
Vous pouvez aussi déclencher la navigation côté client via des événements qui ne sont pas normalement écoutés par le routeur `<ClientRouter />` en utilisant [`navigate()`](/fr/reference/modules/astro-transitions/#navigate). Cette fonction du module `astro:transitions/client` peut être utilisée dans les scripts et dans les composants du framework qui sont hydratés avec une [directive client](/fr/reference/directives-reference/#directives-client).
323
324
324
325
L'exemple suivant montre un composant Astro qui permet à un visiteur de naviguer vers une autre page qu'il sélectionne dans un menu :
325
326
@@ -446,9 +447,35 @@ Vous pouvez refuser les transitions de routeur sur un formulaire individuel en u
446
447
<form action="/contact" data-astro-reload>
447
448
```
448
449
449
-
##Gestion de solution de secours
450
+
### Naviguer en utilisant la saisie de l'utilisateur
450
451
451
-
Le routeur `<ClientRouter />` fonctionne mieux dans les navigateurs qui prennent en charge les Transitions de Vue (c'est-à-dire les navigateurs Chromium), mais inclut également une prise en charge de secours par défaut pour les autres navigateurs. Même si le navigateur ne prend pas en charge l'API de Transitions de Vue, le routeur client d'Astro peut tout de même fournir une navigation dans le navigateur en utilisant l'une des options de secours.
452
+
L'API `navigate()` n'effectue aucun nettoyage des URL qui lui sont transmises. Si vous utilisez les données saisies par l'utilisateur pour déterminer l'URL vers laquelle naviguer, vous devez valider ces données avant de les transmettre à `navigate()`.
453
+
454
+
Par exemple, un paramètre de requête `?redirect` pourrait être utilisé pour naviguer hors de votre site (`?redirect=http://example.com`) ou pour exécuter du code arbitraire (`?redirect=javascript:alert('Code malveillant')`) si la valeur n'est pas nettoyée avant utilisation.
455
+
456
+
Une façon de mettre cela en œuvre en toute sécurité consiste à s'assurer que la redirection n'est possible que pour une série de chemins connus :
457
+
458
+
```astro title="src/pages/index.astro"
459
+
<script>
460
+
import { navigate } from 'astro:transitions/client';
461
+
462
+
const params = new URLSearchParams(window.location.search);
Le type exact de nettoyage dont vous aurez besoin dépendra de votre site et de ce que vous souhaitez autoriser.
473
+
474
+
<ReadMore>Envisagez d’activer la [fonctionnalité expérimentale de politique de sécurité du contenu](/fr/reference/experimental-flags/csp/) d’Astro pour vous protéger contre les risques de script intersite (XSS) si vous utilisez la saisie des utilisateurs avec l’API `navigate()`.</ReadMore>
475
+
476
+
## Contrôle de la stratégie de repli
477
+
478
+
Le routeur `<ClientRouter />` fonctionne mieux dans les navigateurs qui prennent en charge les Transitions de Vue (c'est-à-dire les navigateurs Chromium), mais inclut également par défaut une stratégie de repli pour les autres navigateurs. Même si le navigateur ne prend pas en charge l'API des Transitions de Vue, le routeur client d'Astro peut tout de même assurer la navigation dans le navigateur grâce à l'une des options de repli.
452
479
453
480
En fonction de la prise en charge du navigateur, vous devrez peut-être définir explicitement les [directives de transition](#directives-de-transition)`name` ou `animate` sur les éléments que vous souhaitez animer pour une expérience comparable sur tous les navigateurs :
454
481
@@ -459,7 +486,7 @@ import Layout from "../layouts/LayoutUsingClientRouter.astro";
459
486
<title transition:animate="fade">À propos de mon site</title>
460
487
```
461
488
462
-
Vous pouvez remplacer la prise en charge de secours par défaut d'Astro en ajoutant une propriété `fallback` sur le composant `<ClientRouter />` et en la définissant sur `swap` ou `none` :
489
+
Vous pouvez remplacer la stratégie de repli par défaut d'Astro en ajoutant une propriété `fallback` sur le composant `<ClientRouter />` et en la définissant sur `swap` ou `none` :
463
490
464
491
-`animate` (par défaut, recommandé) : Astro simulera des transitions de vues en utilisant des attributs personnalisés avant de mettre à jour le contenu de la page.
465
492
-`swap` : Astro n'essaiera pas d'animer la page. Au lieu de cela, l'ancienne page sera immédiatement remplacée par la nouvelle.
Copy file name to clipboardExpand all lines: src/content/docs/fr/reference/modules/astro-transitions.mdx
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -119,6 +119,8 @@ Une fonction qui exécute une navigation vers le `href` donné à l'aide de l'AP
119
119
120
120
Cette signature de fonction est basée sur la fonction [`navigate` de l'API Navigation du navigateur](https://developer.mozilla.org/en-US/docs/Web/API/Navigation/navigate). Bien que basée sur l'API Navigation, cette fonction est implémentée sur l'[API History](https://developer.mozilla.org/fr/docs/Web/API/History_API) pour permettre la navigation sans recharger la page.
121
121
122
+
`navigate()` n'effectue aucun nettoyage du paramètre `href`. [Nettoyez la saisie de l'utilisateur](/fr/guides/view-transitions/#naviguer-en-utilisant-la-saisie-de-lutilisateur) si vous l'utilisez pour déterminer l'URL vers laquelle naviguer.
123
+
122
124
#### Option `history`
123
125
124
126
<p>
@@ -214,9 +216,9 @@ Indique si la page actuelle comporte ou non des transitions d'affichage activée
214
216
<Sincev="3.6.0" />
215
217
</p>
216
218
217
-
Renvoie la stratégie de secours à utiliser dans les navigateurs qui ne prennent pas en charge les transitions de vue.
219
+
Renvoie la stratégie de repli à utiliser dans les navigateurs qui ne prennent pas en charge les transitions de vue.
218
220
219
-
Voir le guide sur la [Gestion de solution de secours](/fr/guides/view-transitions/#gestion-de-solution-de-secours) pour savoir comment choisir et configurer le comportement de repli.
221
+
Voir le guide sur le [contrôle de la stratégie de repli](/fr/guides/view-transitions/#contrôle-de-la-stratégie-de-repli) pour savoir comment choisir et configurer le comportement de repli.
0 commit comments