Mes principaux sujets: #accessibilite #vuejs #vuetify #nuxt #typescript
Avec effectScope et getCurrentScope, vous avez un contrôle précis sur la réactivité. Ces outils sont essentiels pour des projets Vue.js complexes afin d’assurer des performances optimales et d'éviter les fuites mémoire.
#VueJS #Réactivité #Performance
Avec effectScope et getCurrentScope, vous avez un contrôle précis sur la réactivité. Ces outils sont essentiels pour des projets Vue.js complexes afin d’assurer des performances optimales et d'éviter les fuites mémoire.
#VueJS #Réactivité #Performance
✅ effectScope :
Regroupe plusieurs effets réactifs dans une même portée.
Facilite le nettoyage avec scope.stop().
✅ getCurrentScope :
Vérifie la portée active pour des effets conditionnels.
Combinez-le avec onScopeDispose pour un nettoyage automatique.
✅ effectScope :
Regroupe plusieurs effets réactifs dans une même portée.
Facilite le nettoyage avec scope.stop().
✅ getCurrentScope :
Vérifie la portée active pour des effets conditionnels.
Combinez-le avec onScopeDispose pour un nettoyage automatique.
Dans des composables pour éviter les fuites de mémoire.
Pour regrouper plusieurs effets réactifs complexes dans une même portée.
Lorsque vous travaillez avec des API externes (ex. : setInterval, fetch) pour centraliser le nettoyage.
Dans des composables pour éviter les fuites de mémoire.
Pour regrouper plusieurs effets réactifs complexes dans une même portée.
Lorsque vous travaillez avec des API externes (ex. : setInterval, fetch) pour centraliser le nettoyage.
if (getCurrentScope()) {
onScopeDispose(() => console.log("Scope nettoyé !"));
}
Pourquoi ? Cela permet d’écrire des composables qui ne dépendent pas d’un composant parent pour le nettoyage.
if (getCurrentScope()) {
onScopeDispose(() => console.log("Scope nettoyé !"));
}
Pourquoi ? Cela permet d’écrire des composables qui ne dépendent pas d’un composant parent pour le nettoyage.
getCurrentScope vous permet de vérifier si vous êtes dans une portée active (scope). Utile pour conditionner l’ajout d’effets.
getCurrentScope vous permet de vérifier si vous êtes dans une portée active (scope). Utile pour conditionner l’ajout d’effets.
import { effectScope, ref, onScopeDispose } from 'vue';
export function useScopedCounter() {
const scope = effectScope();
const count = ref(0);
scope.run(() => {
setInterval(() => count.value++, 1000);
});
// Nettoyage auto
onScopeDispose(() => scope.stop());
return { count };
}
import { effectScope, ref, onScopeDispose } from 'vue';
export function useScopedCounter() {
const scope = effectScope();
const count = ref(0);
scope.run(() => {
setInterval(() => count.value++, 1000);
});
// Nettoyage auto
onScopeDispose(() => scope.stop());
return { count };
}
effectScope est particulièrement utile dans les composables pour éviter des effets qui continuent de vivre après le démontage d'un composant.
effectScope est particulièrement utile dans les composables pour éviter des effets qui continuent de vivre après le démontage d'un composant.
import { effectScope, ref, watch } from 'vue';
const scope = effectScope();
scope.run(() => {
const count = ref(0);
watch(count, (newVal) => console.log("Count:", newVal));
count.value++;
});
Résultat : Les effets sont contenus dans scope.
import { effectScope, ref, watch } from 'vue';
const scope = effectScope();
scope.run(() => {
const count = ref(0);
watch(count, (newVal) => console.log("Count:", newVal));
count.value++;
});
Résultat : Les effets sont contenus dans scope.
effectScope permet de regrouper des effets réactifs (comme des watch, computed, ou ref) dans un espace isolé. Cela facilite :
Le nettoyage des réactivités.
L’évitement des fuites de mémoire.
👉 Parfait pour des composables complexes ou des effets globaux temporaires.
effectScope permet de regrouper des effets réactifs (comme des watch, computed, ou ref) dans un espace isolé. Cela facilite :
Le nettoyage des réactivités.
L’évitement des fuites de mémoire.
👉 Parfait pour des composables complexes ou des effets globaux temporaires.
Suspense facilite le rendu différé pour des composants ou données asynchrones.
Associez-le à defineAsyncComponent pour charger des composants dynamiques.
Divisez votre appli en plusieurs Suspense pour garder une UI réactive et rapide.
Prêt à essayer ? 🚀
#VueJS #DéveloppementWeb #Suspense
Suspense facilite le rendu différé pour des composants ou données asynchrones.
Associez-le à defineAsyncComponent pour charger des composants dynamiques.
Divisez votre appli en plusieurs Suspense pour garder une UI réactive et rapide.
Prêt à essayer ? 🚀
#VueJS #DéveloppementWeb #Suspense
Gérez les erreurs : Utilisez une combinaison de try-catch et de slots conditionnels pour afficher des messages en cas d'échec.
Gérez les erreurs : Utilisez une combinaison de try-catch et de slots conditionnels pour afficher des messages en cas d'échec.
Chargez uniquement ce qui est nécessaire : Ne mettez pas tout dans un seul Suspense. Divisez les sections de votre UI.
Chargez uniquement ce qui est nécessaire : Ne mettez pas tout dans un seul Suspense. Divisez les sections de votre UI.
#default>
#fallback>
Chargement de tout...
👉 Pour charger plusieurs sections de votre page en mm tps.
#default>
#fallback>
Chargement de tout...
👉 Pour charger plusieurs sections de votre page en mm tps.
Suspense peut gérer plusieurs enfants asynchrones. Il attend que toutes les promesses soient résolues avant d’afficher le contenu.
Suspense peut gérer plusieurs enfants asynchrones. Il attend que toutes les promesses soient résolues avant d’afficher le contenu.
Pour utiliser Suspense, créez un composant asynchrone avec defineAsyncComponent :
import { defineAsyncComponent } from 'vue';
const AsyncComponent = defineAsyncComponent(() =>
import('./MyAsyncComponent.vue')
);
Pour utiliser Suspense, créez un composant asynchrone avec defineAsyncComponent :
import { defineAsyncComponent } from 'vue';
const AsyncComponent = defineAsyncComponent(() =>
import('./MyAsyncComponent.vue')
);
#default>
#fallback>
Chargement...
#default>
#fallback>
Chargement...