zmp-vue
Version:
Build full featured iOS & Android apps using ZMP & Vue
39 lines (28 loc) • 879 B
JavaScript
;
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;