uniapp实现的简约美观的星级评分组件 - 详解

采用 uniapp 实现的一款简约美观的星级评分模板,提供丝滑动画效果,用户可根据自身需求进行自定义修改、扩展,纯CSS、HTML实现,支持web、H5、微信小程序(其他小程序请自行测试)

可到插件市场下载尝试: https://ext.dcloud.net.cn/plugin?id=23736

props 属性

selectedStar

默认值选中星级

selectedStar: {
type: number,
default: 0
,
}
,

level

最高等级

level: {
type: number,
default: 5
,
}
,

事件

@change

点击星级变化时触发

使用示例

vue2 写法

<template>
  <view style="padding: 10rpx; display: flex; flex-direction: column;row-gap: 40rpx;">
    <view style="display: flex; flex: auto;">
      <StarRating :selected-star="2" :level="3" @change="onChange">
        <
        /StarRating>
        <
        /view>
        <view style="display: flex; flex: auto;">
          <StarRating :selected-star="1" :level="5">
            <
            /StarRating>
            <
            /view>
            <view style="display: flex; flex: auto;">
              <StarRating :selected-star="5" :level="8">
                <
                /StarRating>
                <
                /view>
                <
                /view>
                <
                /template>
                <script>
                  import StarRating from './comp/star-rating.vue'
                  ;
                  export
                  default {
                  components: {
                  StarRating
                  }
                  ,
                  data(
                  ) {
                  return {
                  }
                  }
                  ,
                  methods: {
                  onChange(value
                  ) {
                  console.log('Selected star rating:'
                  , value)
                  ;
                  }
                  }
                  }
                  <
                  /script>
                  <style scoped>
                    <
                    /style>

vue3 写法

<template>
  <view style="padding: 10rpx; display: flex; flex-direction: column; row-gap: 40rpx;">
    <view style="display: flex; flex: auto;">
      <StarRating :selected-star="2" :level="3" @change="onChange" />
        <
        /view>
        <view style="display: flex; flex: auto;">
          <StarRating :selected-star="1" :level="5" />
            <
            /view>
            <view style="display: flex; flex: auto;">
              <StarRating :selected-star="5" :level="8" />
                <
                /view>
                <
                /view>
                <
                /template>
                <script setup>
                  import StarRating from './comp/star-rating.vue'
                  ;
                  function onChange(value
                  ) {
                  console.log('Selected star rating:'
                  , value)
                  ;
                  }
                  <
                  /script>
                  <style scoped>
                    <
                    /style>
posted @ 2025-07-25 10:57  yjbjingcha  阅读(42)  评论(0)    收藏  举报