APP.popup = function (component,props) {
let mount_poiunt = document.createElement('div');
document.body.append(mount_poiunt);
var props = {
'component':component,
'props':props
}
var Popup = Vue.extend({
data: function () {
return props
},
destroyed () {
this.$el.remove()
},
methods: {
close: function () {
this.$destroy()
}
},
template: `<div class="popup">
<span v-on:click="close" class="close">✖</span>
<component v-bind:is="component" v-on:close="close" v-bind="props"/>
</div>`
})
new Popup().$mount(mount_poiunt)
};
Далее ты просто делаешь так в методе компонента своего:
APP.popup('имяКомпонентаКоторыйНадоПоказатьВПопапе', {параметрыЭтогоКомпонента});