javascript / expert
Snippet
Typsichere Dependency Injection mit Symbols
Die Verwendung von Symbols für Provide/Inject-Keys stellt sicher, dass Ihre Dependency-Injection-Token einzigartig sind und nicht durch zufällige String-Kollisionen in großen Anwendungen überschrieben werden können.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
import { provide, inject } from 'vue';// Define a unique key to avoid collisionsexport const ApiServiceKey = Symbol('ApiService');export const useApi = () => {const service = inject(ApiServiceKey);if (!service) throw new Error('ApiService not provided');return service;};export const provideApi = (instance) => provide(ApiServiceKey, instance);
vue
Erklärung
1
export const ApiServiceKey = Symbol('ApiService');
Erstellt einen einzigartigen, unveränderlichen Bezeichner, der als sicherer Key für Dependency Injection dient.
2
const service = inject(ApiServiceKey);
Ruft die bereitgestellte Abhängigkeit ab, die mit dem eindeutigen Symbol-Key verknüpft ist.
3
if (!service) throw new Error(...);
Experten-Praxis: Sicherstellen, dass die Abhängigkeit existiert, um Laufzeitfehler durch Null-Pointer zu vermeiden.