Я написал директиву обертки, которая использует функцию vue Render .
Внутри функции рендеринга все, что она делает, это:
render: function(createElement) {
const compiled = Vue.compile(this.$props.template);
return compiled.render.call(this, createElement);
}
Я использую как:
<Render v-for="item in itemsToRender" :key="item.id" />
Это работает для нативных HTML-элементов:
const itemsToRender = ['<p>test</p>', '<h1>HELLO</h1>'];
Однако, если я передам свою собственную пользовательскую директиву, такую как
<my-directive></my-directive>
Тогда vue будет жаловаться на неизвестные компоненты. Вероятно, это потому, что у меня нет пользовательской директивы, импортированной / необходимой в контексте директивы рендеринга. Есть ли обходной путь для этого? Причина, по которой мне нужна эта директива-обертка для компиляции, заключается в том, что такие библиотеки, как vue.Draggable, полагаются на 'v-for', чтобы переупорядочить элементы списка. Однако я хочу, чтобы различные компоненты можно было перетаскивать, поэтому я передаю только шаблоны для компиляции в v-for.