В строгом смысле вы задали вопрос, я не думаю, что это возможно. Существует директива v- html , которая может отображать html для вас, но не для компонентов. Это также считается анти-паттерном, так как руководство vue гласит:
Динамический рендеринг произвольного HTML на вашем сайте может быть очень опасным, поскольку может легко привести к атакам XSS. Используйте только v- html для доверенного содержимого и никогда не для пользовательского содержимого.
Вы можете просмотреть dynamici c компоненты , чтобы отобразить vue компоненты на основе пользовательского ввода. Вы можете проанализировать пользовательский ввод wysiwyg, разбить строку на распознанные vue -компонентные теги (таким образом, у вас есть массив элементов с последовательностями регулярных html и элементов, которые являются одиночными vue -компонентами), а затем используйте шаблон с циклом v-for, чтобы отобразить это. (нерабочий псевдокод) пример:
<div id="renderedWysiwygInput">
<div v-for="elem in splitInput">
<component v-if="stringIsVueComponent(element)" v-bind:is="element"></component>
<div v-else v-html="element"></div>
</div>
</div>
Вам нужно будет еще немного поработать с этим примером, чтобы учесть возможность ввода внутри самих компонентов vue, например, если вы заполнение слотов. Я бы постарался ограничить тип вводимых вами данных, чтобы он был управляемым.