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

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

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

  • 示例
    • 微信小程序端效果

    • H5端效果

props 属性

selectedStar

默认值选中星级

js 复制代码
selectedStar: {
    type: number,
    default: 0,
},

level

最高等级

js 复制代码
level: {
    type: number,
    default: 5,
},

事件

@change

点击星级变化时触发

使用示例

vue2 写法

js 复制代码
<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 写法

js 复制代码
<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>
相关推荐
dly_blog1 小时前
ref 与 reactive 的本质区别(第3节)
前端·javascript·vue.js
前端不太难8 小时前
从 Navigation State 反推架构腐化
前端·架构·react
前端程序猿之路9 小时前
Next.js 入门指南 - 从 Vue 角度的理解
前端·vue.js·语言模型·ai编程·入门·next.js·deepseek
大布布将军9 小时前
⚡️ 深入数据之海:SQL 基础与 ORM 的应用
前端·数据库·经验分享·sql·程序人生·面试·改行学it
川贝枇杷膏cbppg9 小时前
Redis 的 RDB 持久化
前端·redis·bootstrap
JIngJaneIL9 小时前
基于java+ vue农产投入线上管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
天外天-亮10 小时前
v-if、v-show、display: none、visibility: hidden区别
前端·javascript·html
jump_jump10 小时前
手写一个 Askama 模板压缩工具
前端·性能优化·rust
be or not to be10 小时前
HTML入门系列:从图片到表单,再到音视频的完整实践
前端·html·音视频
90后的晨仔11 小时前
在macOS上无缝整合:为Claude Code配置魔搭社区免费API完全指南
前端