piral-vue
Version:
Plugin for integrating Vue@2 components in Piral.
25 lines • 939 B
JavaScript
import { mountVue } from './mount';
import { createExtension } from './extension';
export function createConverter(config = {}) {
const { rootName = 'piral-slot', selector = 'extension-component' } = config;
const Extension = createExtension(rootName, selector);
const convert = (root, captured) => ({
mount(parent, data, ctx, locals) {
const el = parent.appendChild(document.createElement(rootName));
locals.instance = mountVue(el, root, data, ctx, captured);
},
update(parent, data, ctx, locals) {
for (const prop in data) {
locals.instance[prop] = data[prop];
}
},
unmount(parent, locals) {
locals.instance.$destroy();
parent.innerHTML = '';
locals.instance = undefined;
},
});
convert.Extension = Extension;
return convert;
}
//# sourceMappingURL=converter.js.map