/
eb
/
js-excel
Обзор
Документация
Войти
/
eb
/
js-excel
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/core/ExcelComponent.js
58 строк
1 KB
Evgeniy Budaev
Finish redux and table logic
16 июн 2020, 10:52
16 июн 2020, 10:52
b7d4906
Код
Авторство
О чём код?
import {DomListener} from "@core/DomListener"; export class ExcelComponent extends DomListener { constructor($root, options = {}) { super($root, options.listeners); this.name = options.name || '' this.emitter = options.emitter this.subscribe = options.subscribe || [] this.store = options.store this.onsubscribers = [] this.prepare() } // Настраиваем наш компонент до init prepare() {} // Возвращает шаблон компонента toHtml() { return '' } // Уведомляем слушателей про события event $emit(event, ...args) { this.emitter.emit(event, ...args) } // Подписываемся на событие event $on(event, fn) { const unsub = this.emitter.subscribe(event, fn) this.onsubscribers.push(unsub) } $dispatch(action) { this.store.dispatch(action) } // Сюда приходят только изменения по тем полям, на которые мы подписались storeChanged() {} isWatching(key) { return this.subscribe.includes(key) } // Инициализируем компонент // Добавляем DOM слушателей init() { this.initDOMListeners() } // Удаляем компонент // Чистим слушателей destroy() { this.removeDOMListeners() this.onsubscribers.forEach(unsub => unsub()) // this.storeSub.unsubscribe() } }