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
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.