В одном из Vue компонентов есть текст, в котором плейсхолдеры (последовательности символов
### или
@@@) заменяются на соответствующий компонент.
computed: {
processedHtml () {
let html = this.content.replaceAll('###', '<b-form-input type="text" size="sm" :name="name"></b-form-input>').replaceAll('@@@', '<gap></gap>');
return {
template: '<div>' + html + '</div>'
}
}
}
В шаблоне (template) компонента:
<template>
<component v-bind:is="processedHtml"></component>
</template>
Однако возникает ошибка
[Vue warn]: Unknown custom element: gap - did you register the component correctly? ...
found in
--->
at /src/components/Fill.vue
at /src/App.vue
Если в шаблоне (template) компонента попытаться напрямую отрендерить
gap, то всё получится
<template>
<gap></gap>
</template>
В чём может быть причина подобного поведения?