マイレートコンポーネントを完成させる
このステップでは、多次元評価機能を実装するために my-rate.vue
コンポーネントを完成させます。
プロジェクトフォルダ内の my-rate.vue
ファイルを開きます。
template
セクションで、評価コンポーネント用のHTML構造を追加します。
<div class="block">
<span class="demonstration">Please rate the takeout: </span>
<ul class="rate-list">
<li>
<!-- TODO: Completing the el-rate property -->
Speed of delivery:
<el-rate v-model="speed" show-score @change="changeHandler"></el-rate>
</li>
<li>
<!-- TODO: Completing the el-rate property -->
Takeout flavors:
<el-rate v-model="flavor" show-score @change="changeHandler"></el-rate>
</li>
<li>
<!-- TODO: Completing the el-rate property -->
Takeout packaging:<el-rate
v-model="pack"
show-score
@change="changeHandler"
></el-rate>
</li>
</ul>
</div>
この構造には、速度、味、包装の各評価次元に対応する3つの el-rate
コンポーネントが含まれています。
<script>
セクションで、changeHandler
メソッドを追加します。
<script>
module.exports = {
data() {
return {
speed: 0,
flavor: 0,
pack: 0
};
},
/* TODO */
methods: {
changeHandler() {
if (this.speed && this.flavor && this.pack) {
const rate = {
speed: this.speed,
flavor: this.flavor,
pack: this.pack
};
this.$emit("change", rate);
}
}
}
};
</script>
data
関数は、各次元の現在の評価値を格納する speed
、flavor
、pack
の3つのプロパティを持つオブジェクトを返します。
changeHandler
メソッドは、いずれかの次元の評価が変更されたときに呼び出されます。すべての3つの評価が設定されているかどうかを確認し、その場合は更新された評価値を含むオブジェクトで change
イベントを発行します。
my-rate.vue
ファイルを保存します。
ブラウザに戻り、ページを更新します。完成したインターフェイスは以下の図の通りです。