С vuejs 2 я могу вставить компонент (называемый testo2 для моего теста) в contenteditable div, код:
addtesto(){
let ComponentClass = Vue.extend(testo2);
let instance = new ComponentClass();
instance.$mount();
let sel, range;
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
range.insertNode(instance.$el);
window.getSelection().removeAllRanges();
}
}
}
Я давно пытаюсь преобразовать этот код для vuejs 3 и его api композиции (внутри setup ()), но этот код не работает:
const addtesto = () => {
// here it changes
const instance = createApp(testo2);
instance.mount();
// here it is same thing
let sel, range;
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
range.insertNode(instance.$el);
window.getSelection().removeAllRanges();
}}};
Проблема с $ el в range.insertNode (instance. $ El); но я думаю, что компонент testo2 никогда не монтируется.
кто-нибудь умеет делать?