kr-observable
Version:
Adds reactivity power for your JavaScript
29 lines (28 loc) • 687 B
JavaScript
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);
},
};