淘先锋技术网

首页 1 2 3 4 5 6 7

Vue.js 是一款前端框架,提供了方便的数据双向绑定和组件化开发的方式,使得开发者可以快速构建高效的前端应用。在实际开发中,为了提供更好的用户体验,评分功能经常被应用于各种类型的网站和应用中。下面我们将介绍如何使用 Vue.js 实现一款评分组件。


// Rating 组件代码

<template>
  <div class="rating">
    <span v-for="(item, index) in max" :key="index" @click="select(index)" :class="{active: index<=value-1}">★</span>
  </div>
</template>

<script>
  export default {
    props: {
      value: {
        type: Number,
        required: true
      },
      max: {
        type: Number,
        default: 5
      }
    },
    methods: {
      select(index) {
        this.$emit("input", index+1);
      }
    }
  }
</script>

<style>
  .rating {
    display: inline-block;
    font-size: 24px;
  }
  .rating span {
    cursor: pointer;
    color: #ccc;
  }
  .rating .active {
    color: #ffca3b;
  }
</style>

vue怎么评分

在这段代码中,我们定义了一个名为 Rating 的组件,它接收两个 props:value 和 max。value 表示当前评分的值,max 表示最大评分值,如果不传 max 则默认为 5。同时,我们提供了一个 select 方法,当用户点击评分时,会触发该方法,并通过 $emit 方法向父组件发送 value 的变化。通过 @click 监听用户点击事件,根据 index 和 value 的大小来判断当前评分是否被选中,如果被选中则添加 active 类名,实现评分样式的改变。

使用 Rating 组件非常简单,只需要在父组件中引入并设置 value 的初始值就可以了。同时我们还可以通过 computed 计算属性来实时计算分数的平均值,这样就能够实现更加复杂的评分功能了。