2017-07-11 5 views
0

私はVue2で単一のファイルコンポーネントを作成しています、と私は子コンポーネントを含めています:divのコンポーネントコンテンツを常にラップする必要がありますか?

親コンポーネント:

<template> 
    <div> 
    <my-component-2> 
    </my-component-2> 
    </div> 
</template> 

<script> 
    .... 
</script> 

子コンポーネント(私の成分-2):

<template> 
    <my-component-3> 
    </my-component-3> 
</template> 

<script> 
    .... 
</script> 

孫部品(私の成分-3):

<template> 
    <div v-for="(item, index) in items"> 
    </div> 
</template> 

<script> 
    ... 
</script> 

しかしmy-component-3は "レンダリング"されていませんが、div内に<my-component-3>をラップすると(my-component-2を呼び出す親コンポーネントのように)、動作します。

子コンポーネントを任意のhtmlタグでラップすることなく呼び出す方法はありますか?

+0

これは動作するはずです:https://jsfiddle.net/dthadfp6/ 'my-component-3'はレンダリングされません何が入ってるの? – thanksd

+0

@thanksd「単一ファイルコンポーネント」を使用すると機能しますか?それが私がそれをテストする方法です。 – Shaz

+0

ええ、いずれにしてもうまくいくはずです。あなたの 'my-component-3'テンプレートはどのように見えますか? – thanksd

答えて

2

コンポーネントの<template>には、直接の子ノードが1つしかありません。

my-component-3コンポーネントのルート要素がv-forを使用していたため、複数の子ノードを持つためレンダリングできませんでした。

他のコンポーネントのテンプレートでコンポーネントを使用する場合、コンポーネントを任意のコンポーネントにラップする必要はありません。

関連する問題