0 Tage Serie
javascript / expert
Snippet

Bitweises Status-Management für Hochleistungs-Flags

Bei der Verwaltung zahlreicher boolescher Zustände reduziert die Verwendung bitweiser Operatoren zum Packen von Flags in eine einzige Ganzzahl den reaktiven Overhead. Svelte muss nur eine Zahl anstatt mehrerer boolescher Runen verfolgen, was den Speicher und die Update-Zyklen für komplexe Komponenten optimiert.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
const FLAG_VISIBLE = 1 << 0; // 1
const FLAG_LOADING = 1 << 1; // 2
const FLAG_ERROR = 1 << 2; // 4
let state = $state(0);
function toggleLoading(on) {
if (on) state |= FLAG_LOADING;
else state &= ~FLAG_LOADING;
}
const isLoading = $derived((state & FLAG_LOADING) !== 0);
svelte
Erklärung
1
state |= FLAG_LOADING;
Verwendet den bitweisen OR-Operator, um das Loading-Flag-Bit auf 1 zu setzen.
2
state &= ~FLAG_LOADING;
Verwendet bitweises AND und NOT, um das Loading-Flag-Bit wieder auf 0 zu setzen.