2017-04-05 17 views
0

propsをmarkdown/template構文のコンポーネントに渡すにはどうすればよいですか?テンプレートに小道具を渡す

React <component :props="myObject">のような操作はできますか?それを私のコンポーネントの中でどのように扱うのですか?私のコンポーネントの中で小道具を宣言しなければならないのですか、あるいは私は小道具の「不明」なセットを持つことができますか?

<template> 
    <div> 
     <component :is="Form" :prop="{title: 'foo', subTitle: 'bar'}"></component> 
    </div> 
</template> 

を、私のForm.vueファイルに私がpropsを宣言する必要はなかっただろう、とのようなデータを宣言します:

私の本能、影響を受けて反応し、どうなるあたりとして

data(){ 
    return {title: '', subTitle: ''}; 
} 
+0

彼ら(小道具)コンポーネント内で宣言する必要があります。 –

+0

また、プロパティーバインディングを使用している場合:prop = 'some'これをデータプロパティーに含めることができます。あなたの質問は「」なので、一般的なコンポーネントに小道具を渡すか、小道具を動的コンポーネントに渡しますか? –

+0

@AmreshVenugopalプロンプトを動的に ' 'に渡したいと思います。私はフォームフォーム(投稿フォームです)を使用しています。私はそれに' props'を渡したいので、 'props'オブジェクトに応じてボタンを選択します。私がリアクトワールドから来て、Vue.jsについて非常に興味があることがわかっていないかどうか教えてください! – Rikard

答えて

1

ドキュメント:

propは、親コンポーネントから情報を渡すためのカスタム属性ですents。あなたが親コンポーネントに「SAMPLE_DATA」にデータを設定することができます

<template> 
    <child :title-data="sample_data"></child> 
</template> 

:親コンポーネント、あなたのケースでは

:子コンポーネントは、明示的にそれは小道具のオプションを使用して受信することを期待小道具を宣言する必要があります。

data: function() { 
    return { 
    sample_data: { 
     'title': '', 
     'subtitle': '' 
    } 
    } 
} 

子コンポーネント:

<template> 
    <span> {{ titleData.title }} </span> 
    <span> {{ titleData.subtitle }} </span> 
</template> 

<script> 
export default { 
    name: 'child', 
    props: ['titleData'] 
} 
</script> 

はい、あなたがコンポーネント内の小道具を宣言しなければなりません。あなたは上記の方法でそれを宣言することができます。そうすれば、小道具をより明示して、小道具を検証することができます。 https://vuejs.org/v2/guide/components.html#Prop-Validation

また小道具でキャメルケース対ケバブ・ケースについて読む:それについて移動する方法については、これを読んでhttps://vuejs.org/v2/guide/components.html#camelCase-vs-kebab-case

小道具について詳しく読む:https://vuejs.org/v2/guide/components.html#Props

+0

私の質問を見ていただきありがとうございます!私は ':title-data'を一度しか見ません。それは' child'コンポーネントの中で使うプロパティ名ではないでしょうか? 'title-data'は特別な機能を持つ予約語ではないためですか? – Rikard

+0

小児の中で宣言されている小道具です、小道具:['titleData']を見て、これを見て大文字小文字の変更を理解してください:https://vuejs.org/v2/guide/components.html#camelCase-vs-kebab -case – Deepak

+0

基本的にあなたの小道具が 'titleData'(camelCase)の場合、それを属性としてhtmlで使用すると、 'title-data'(kebab-case)として使用する必要があります。 – Deepak

関連する問題