完成 My-Rate 组件
在这一步中,你将完成 my-rate.vue 组件以实现多维评分功能。
- 在项目文件夹中打开
my-rate.vue 文件。
- 在
template 部分,添加评分组件的 HTML 结构:
<div class="block">
<span class="demonstration">请对这份外卖进行评分:</span>
<ul class="rate-list">
<li>
<!-- TODO: 完成 el-rate 属性 -->
配送速度:
<el-rate v-model="speed" show-score @change="changeHandler"></el-rate>
</li>
<li>
<!-- TODO: 完成 el-rate 属性 -->
外卖口味:
<el-rate v-model="flavor" show-score @change="changeHandler"></el-rate>
</li>
<li>
<!-- TODO: 完成 el-rate 属性 -->
外卖包装:<el-rate
v-model="pack"
show-score
@change="changeHandler"
></el-rate>
</li>
</ul>
</div>
此结构包括三个 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,它们存储每个维度的当前评分值。
changeHandler 方法在任何维度的评分发生变化时被调用。它检查是否所有三个评分都已设置,如果是,则发出一个 change 事件,并附带一个包含更新后评分值的对象。
- 保存
my-rate.vue 文件。
- 返回浏览器并刷新页面。完成后的界面如下所示: