Vue-router router-link
テンプレートをレンダリングするために小道具を介してタグを取得する場所
<my-component tag="ul">
</my-component>
レンダリングします:
<ul>
anything inside my-component
</ul>
組み込みのcomponent
要素を次のように使用できます。
<component is="ul" class="foo" style="color:red">
anything inside component
</component>
参照: https://vuejs.org/v2/guide/components.html#Dynamic-Components
EDIT:@krukidの答えを確認してください、それはより良い解決策です、私が答えたときにcomponent
要素について知りませんでした
関数のウェイをレンダリングする:
レンダリング関数を使用する「ラッパーコンポーネント」を作成する必要があります。
import Vue from 'vue';
Vue.component('wrapper-component', {
name: 'wrapper-component',
render(createElement) {
return createElement(
this.tag, // tag name
this.$slots.default // array of children
);
},
props: {
tag: {
type: String,
required: true,
},
},
});
次に、他のテンプレートで次のように使用します
<wrapper-component tag="div">
<span>All this will be rendered to inside a div</span>
<p>
All
</p>
</wrapper-component>
そしてそれはこれにレンダリングする必要があります
<div>
<span data-v-4fcf631e="">All this will be rendered to inside a div</span>
<p data-v-4fcf631e="">
All
</p>
</div>
レンダリング関数の詳細については、 公式ドキュメント をご覧ください