0 Tage Serie
javascript / expert
Snippet

Entkoppelter Zustand via Symbol-basierter Dependency Injection

Die Verwendung von eindeutigen Symbols als Injection-Keys stellt sicher, dass die Dependency Injection kollisionsfrei und typsicher ist. Dieses Architekturmuster erleichtert die Inversion of Control (IoC), wodurch Module von spezifischen Implementierungsdetails entkoppelt bleiben.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
import { provide, inject } from 'vue';
export const AuthKey = Symbol('AuthContext');
export const useAuthProvider = (userData) => {
provide(AuthKey, userData);
};
export const useAuthConsumer = () => {
const auth = inject(AuthKey);
if (!auth) throw new Error('useAuthConsumer must be used within an AuthProvider');
return auth;
};
vue
Erklärung
1
Symbol('AuthContext')
Erstellt eine eindeutige, kollisionsfreie Referenz für den Injection-Key.
2
if (!auth) throw new Error(...)
Stellt sicher, dass der Vertrag des Providers eingehalten wird, und bietet frühzeitiges Feedback bei Architekturverletzungen.