当前位置:首页 > VUE

vue实现简单星星评分

2026-03-27 00:26:58VUE

Vue 实现星星评分组件

以下是一个基于 Vue 的简单星星评分组件实现方案,支持点击评分和鼠标悬停效果。

vue实现简单星星评分

组件模板部分

<template>
  <div class="star-rating">
    <span 
      v-for="star in maxStars" 
      :key="star"
      @click="setRating(star)"
      @mouseover="hoverRating = star"
      @mouseleave="hoverRating = 0"
      :class="{ 'active': star <= (hoverRating || currentRating) }"
    >
      ★
    </span>
  </div>
</template>

组件脚本部分

<script>
export default {
  props: {
    maxStars: {
      type: Number,
      default: 5
    },
    initialRating: {
      type: Number,
      default: 0
    }
  },
  data() {
    return {
      currentRating: this.initialRating,
      hoverRating: 0
    }
  },
  methods: {
    setRating(star) {
      this.currentRating = star;
      this.$emit('rating-selected', star);
    }
  }
}
</script>

样式部分

<style scoped>
.star-rating {
  font-size: 24px;
  color: #ccc;
}

.star-rating span {
  cursor: pointer;
  padding: 0 2px;
}

.star-rating .active {
  color: #ffcc00;
}
</style>

使用组件

<star-rating 
  :max-stars="5" 
  :initial-rating="3" 
  @rating-selected="handleRating"
/>

功能说明

  • maxStars 属性控制最大星星数量
  • initialRating 设置初始评分值
  • rating-selected 事件在用户选择评分时触发
  • 鼠标悬停时显示临时评分效果
  • 点击后固定评分值

进阶改进建议

  1. 添加半星评分功能
  2. 支持禁用状态(只读模式)
  3. 自定义星星图标和颜色
  4. 添加评分文字提示
  5. 实现动画过渡效果

该组件实现简单但功能完整,可根据具体需求进一步扩展和完善。

标签: 评分星星
分享给朋友:

相关文章

vue实现星星评分原理

vue实现星星评分原理

实现星星评分的基本原理 星星评分通常通过显示一组星星图标,允许用户点击或悬停来选择评分值。Vue 的响应式特性使得实现这一功能变得简单,核心逻辑包括数据绑定、事件处理和动态样式控制。 数据绑定与渲染…

vue点击实现星星评价

vue点击实现星星评价

实现星星评价功能 在Vue中实现星星评价功能可以通过动态渲染星星图标并绑定点击事件来完成。以下是具体实现方法: 数据准备 定义评价等级和当前选中状态的数据: data() { return {…

react实现星星评分

react实现星星评分

实现星星评分组件 使用React实现一个可交互的星星评分组件,可以通过状态管理用户选择的评分值。 import React, { useState } from 'react'; const St…

js 实现星星打分

js 实现星星打分

实现星星打分功能 使用HTML、CSS和JavaScript可以创建一个交互式的星星打分系统。以下是一个完整的实现方法: HTML结构 <div class="star-rating">…

js实现微笑评分

js实现微笑评分

微笑评分实现思路 微笑评分通常基于面部识别技术,通过检测人脸关键点(如嘴角、眼睛)的位移或角度变化来评估微笑程度。以下是使用JavaScript及相关库实现的方案: 使用Face-api.js库实现…

vue实现评分

vue实现评分

实现评分功能的步骤 在Vue中实现评分功能可以通过多种方式完成,以下是一种常见的实现方法: 创建评分组件 使用v-for循环生成评分星星,并通过v-model绑定评分值: <templat…