wetrade-design
Version:
一款多语言支持Vue3的UI框架
39 lines (38 loc) • 1.3 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useCreateVueApp = useCreateVueApp;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _vue = require("vue");
var _const = require("./const");
/**
* 创建vue组件
* @param param0
*/
function useCreateVueApp(_ref) {
var key = _ref.key,
props = _ref.props,
componentKey = _ref.componentKey,
el = _ref.el,
slots = _ref.slots,
vueAppInstances = _ref.vueAppInstances,
extParam = _ref.extParam;
var component = _const.COMPONENTS[componentKey];
if (vueAppInstances[key]) {
return;
}
vueAppInstances[key] = (0, _vue.createApp)({
render: function render() {
return (0, _vue.h)(component, (0, _objectSpread2.default)({}, props), (0, _objectSpread2.default)({}, slots));
}
});
vueAppInstances[key].destroy = function () {
var _vueAppInstances$key;
(_vueAppInstances$key = vueAppInstances[key]) === null || _vueAppInstances$key === void 0 ? void 0 : _vueAppInstances$key.unmount();
vueAppInstances[key] = null;
};
vueAppInstances[key].config.globalProperties.$props = extParam;
vueAppInstances[key].mount(el);
}