Vue组件------star组件设计

何时使用 对评价进行展示

一 需求明确

实现一个star组件, 展示5个星, 支持 (全星, 半星, 空星), 支持 大小(24px, 36px, 48px)

一 问题分析

要展示5颗星,v-for

接口定义

属性 默认值 备注 size 48(备选项,48,36,24) 星星的大小 (单位px) score Number 星星个数, 为3.6展示3星半

图片定义

.star24_half .star36_half .star48_half

状态定义 .on 全星 .half 半星 .off 0星

二. 代码实现

<div class="star" :class="starType">
    <span v-for="(itemClass,index) in itemClasses" :class="itemClass" class="star-item" :key="index"></span>
  </div>

通过监听 starType 的样式, 控制星的大小

props: {
          
   
    // 1.定义外部传递来的属性
    size:{
          
    // 尺寸
      type:Number
    },
    score:{
          
   // 展示得分
      type:Number
    }

  },
  starType() {
          
   
   return star- + this.size;
},
.star
    
    .star-item
     
    &.star-48
     
    &.star-36
 
    &.star-24

参考文档

https://ant.design/components/rate-cn/

https://element.eleme.cn/#/zh-CN/component/rate

https://github.com/ElemeFE/element/blob/dev/packages/rate/src/main.vue

经验分享 程序员 微信小程序 职场和发展