UNPKG

zmp-vue

Version:

Build full featured iOS & Android apps using ZMP & Vue

39 lines (28 loc) 879 B
"use strict"; exports.__esModule = true; exports.useStore = void 0; var _vue = require("vue"); var _zmp = require("./zmp"); var useStore = function useStore() { // (store, getter) var store = arguments.length <= 0 ? undefined : arguments[0]; var getter = arguments.length <= 1 ? undefined : arguments[1]; if (arguments.length === 1) { // (getter) store = _zmp.zmp.store; getter = arguments.length <= 0 ? undefined : arguments[0]; } var obj = store.getters[getter]; var valueRef = (0, _vue.ref)(obj.value); var callback = function callback(v) { valueRef.value = v; }; obj.onUpdated(callback); (0, _vue.onBeforeUnmount)(function () { // eslint-disable-next-line store.__removeCallback(callback); // eslint-disable-next-line store.__removeCallback(obj.__callback); }); return valueRef; }; exports.useStore = useStore;