Vue.jsでコンポーネントをプロップとして渡す方法


  1. 単純なプロップの渡し方: まず、親コンポーネントで子コンポーネントを使用する際に、子コンポーネントにプロップを渡す方法を見てみましょう。

親コンポーネントのテンプレート内で、子コンポーネントを使用する際に、v-bindディレクティブを使用してプロップを渡すことができます。例えば、以下のようなコードです。

<template>
  <div>
    <child-component :prop-name="dataValue"></child-component>
  </div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      dataValue: 'プロップの値'
    };
  }
}
</script>

上記の例では、dataValueというデータプロパティの値を、prop-nameという名前のプロップとして子コンポーネントに渡しています。

  1. コンポーネントに複数のプロップを渡す方法: 複数のプロップを渡す場合は、v-bindディレクティブを繰り返し使用することができます。例えば、以下のようなコードです。
<template>
  <div>
    <child-component :prop1="value1" :prop2="value2"></child-component>
  </div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      value1: 'プロップ1の値',
      value2: 'プロップ2の値'
    };
  }
}
</script>

上記の例では、value1value2というデータプロパティの値を、prop1prop2という名前のプロップとして子コンポーネントに渡しています。

  1. コンポーネントに動的なプロップを渡す方法: プロップの値を動的に変更する場合は、算出プロパティやメソッドを使用してプロップを計算することができます。例えば、以下のようなコードです。
<template>
  <div>
    <child-component :prop-name="computedProp"></child-component>
  </div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      propValue: '初期値'
    };
  },
  computed: {
    computedProp() {
      // プロップの値を計算するロジック
      return this.propValue + 'の計算結果';
    }
  }
}
</script>

上記の例では、computedPropという算出プロパティを使用して、propValueというデータプロパティの値に基づいてプロップを計算しています。

以上がVue.jsでコンポーネントをプロップとして渡す方法のいくつかです。これにより、コンポーネント間でデータや機能を効果的に共有できます。