Fetching & Displaying Data
How should state management be handled for complex data-driven UIs?
class DataStore {
constructor() {
this.state = new Proxy({}, {
set: (target, property, value) => {
target[property] = value;
this.notifyListeners(property);
return true;
}
});
this.listeners = new Map();
}
subscribe(key, callback) {
if (!this.listeners.has(key)) {
this.listeners.set(key, new Set());
}
this.listeners.get(key).add(callback);
}
notifyListeners(key) {
if (this.listeners.has(key)) {
this.listeners.get(key).forEach(callback => callback(this.state[key]));
}
}