UNPKG

kr-observable

Version:
29 lines (28 loc) 687 B
import { defineComponent, h } from 'vue'; import { executor } from 'kr-observable'; function noop() { } export const Observer = defineComponent({ data: () => ({ runId: undefined, debug: false, run: noop, subscriber: noop, render: noop, disposed: false, }), beforeMount() { this.run = this.$slots?.default; this.render = () => executor.execute(this); }, render() { return h(this.render, { ObservableKey: this.runId }); }, unmounted() { this.disposed = true; }, }); export const ObserverPlugin = { install: (app) => { app.component('Observer', Observer); }, };