javascript / expert
Snippet
Klassenbasierter Pinia-Store-Dekorator zur Auditierung reaktiver Array-Operationen
Die Verwendung objektorientierter Auditor-Klassen zur Überwachung von Pinia-Store-Mutationen bietet eine saubere Trennung der Belange (Separation of Concerns). Die Klasse verfolgt reaktive Array-Änderungen und erstellt unveränderliche Audit-Log-Snapshots.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
export class StoreAuditor {private logHistory = [];attach(store) {store.$subscribe((mutation, state) => {if (Array.isArray(state.items)) {this.logHistory.push({type: mutation.type,itemCount: state.items.length,timestamp: Date.now()});}});}getAuditLogs() {return Array.from(this.logHistory);}}
vue
Erklärung
1
export class StoreAuditor
Kapselt die Zustandsprotokollierungslogik in einer wiederverwendbaren OOP-Serviceklasse.
2
store.$subscribe((mutation, state) => {
Registriert einen Subskriptions-Listener im Pinia-Store, um Zustandsmutationen abzufangen.
3
if (Array.isArray(state.items)) {
Sichert die Audit-Ausführung ab, indem geprüft wird, ob die reaktive Zustands-Eigenschaft ein Array ist.
4
return Array.from(this.logHistory);
Gibt eine flache Array-Kopie der Audit-Logs zurück, um eine externe Mutation der privaten Historie zu verhindern.