説明
Vue.jsにおけるcomputed(算出プロパティ)は、データプロパティを基に動的に計算されるプロパティです。computedプロパティは、テンプレート内でデータの値に基づいて動的な計算や加工を行い、その結果を返します。
computedプロパティを使用することで、テンプレート内で直接式を記述する代わりに、データの値をリアクティブに監視し、関連するプロパティを自動的に再計算できます。これにより、簡潔で効率的なコードを書くことができます。
computedプロパティの定義には、Vueコンポーネントのcomputedオプションを使用します。
例
export default {
data() {
return {
items: [1, 2, 3, 4, 5]
};
},
computed: {
// itemsの要素数を計算するcomputedプロパティ
itemCount() {
return this.items.length;
},
// itemsの合計値を計算するcomputedプロパティ
total() {
return this.items.reduce((sum, item) => sum + item, 0);
}
}
};
上記の例では、itemCount
とtotal
という2つのcomputedプロパティが定義されています。itemCount
はitems
の要素数を返し、total
はitems
の合計値を返します。これらのcomputedプロパティは、items
の値が変更されるたびに自動的に再計算されます。
テンプレート内でcomputedプロパティを使用するには、単純にcomputedプロパティの名前をデータバインディングのように使用します。Vueは内部で依存関係を追跡し、computedプロパティが必要なときにのみ再計算します。
<template>
<div>
<p>アイテム数: {{ itemCount }}</p>
<p>合計: {{ total }}</p>
</div>
</template>
上記の例では、itemCount
とtotal
というcomputedプロパティがテンプレート内で使用されています。これにより、items
の変更に応じて自動的にアイテム数と合計が更新されます。
computedプロパティは、データの加工や集計などの計算に便利であり、コードの可読性と保守性を向上させるのに役立ちます。
コメント