SepRate 评分组件 v1.2.0

星级评分 · count 数量 · allowHalf 半星 · value/defaultValue 受控与非受控 · disabled 禁用 · readonly 只读 · clearable 可清除 · character 自定义字符 · activeCharacter/voidCharacter 双图标 · color 自定义颜色 · colors 分级配色 · showText 常驻文字 · showScore 分值显示 · voidColor 未选中色 · gutter 间距 · precision 精度 · animation 入场动画 · direction 布局方向 · tooltips 文字提示 · size 尺寸 · onChange/onHoverChange 回调 · 键盘导航(←→/Home/End) · 触摸事件支持 · aria 无障碍

1. 基础用法

HTML 声明式标签
JS API 初始化
当前值: 3

2. 半星 allowHalf

HTML 声明式标签
JS API 初始化
当前值: 2.5

3. 数量 count

HTML 声明式标签
JS API 初始化

4. 禁用 / 只读

HTML 声明式标签
disabled
readonly
JS API 初始化

5. 可清除 clearable(再次点击已选项清除)

HTML 声明式标签
JS API 初始化
当前值: 3

6. 自定义字符 character

HTML 声明式标签
字符 A
图标 #heartFill
JS API 初始化
双图标自定义 activeCharacter + voidCharacter

7. 自定义颜色 color

HTML 声明式标签
JS API 初始化

8. 文字提示 tooltips

HTML 声明式标签
JS API 初始化
hover 值: - hover 文案: -

9. 尺寸 size(small / middle / large)

HTML 声明式标签
JS API 初始化

10. 受控模式 value

JS API 初始化
受控值: 2

11. API 交互测试

JS API 初始化
setValue(3) clear() setCount(8) setAllowHalf(true) toggle disabled
状态: -

12. 键盘导航(← → Home End)

JS API 初始化
当前值: 0

13. 分级配色 colors(根据分值自动变色)

JS API 初始化
当前值: 3

14. 常驻文字 showText + texts

JS API 初始化

15. 分值显示 showScore + scoreTemplate + scorePrecision

JS API 初始化

16. 未选中色 voidColor + 间距 gutter

JS API 初始化

17. 精度 precision(支持 0.1 步进)

JS API 初始化
当前值: 3.5

18. 入场动画 animation(逐个点亮 + 呼吸光晕)

JS API 初始化

19. 垂直布局 direction: 'vertical'

JS API 初始化

详细说明

SepRate 星级评分组件,支持半星、自定义数量/字符/颜色、文字提示、禁用/只读、可清除、受控模式、键盘导航与无障碍,适用于商品评价、满意度调查、内容打分等场景。

Props 配置项

参数类型默认值说明
valuenumber-当前分值(受控模式),与 defaultValue 二选一
defaultValuenumber0默认分值(非受控模式)
countnumber5星标总数
allowHalfbooleanfalse是否允许半星
disabledbooleanfalse是否禁用,禁用态显示 cursor: not-allowed
readonlybooleanfalse是否只读,不可交互但保留选中态样式
clearablebooleanfalse是否可通过再次点击当前星清除分值
characterstring'★'自定义字符,支持 'A' 文本或 '#heartFill' 图标 key
activeCharacterstring同 character选中态图标,未设置时回退到 character
voidCharacterstring同 character未选中态图标,未设置时回退到 character
colorstring--warning自定义选中色,如 '#52c41a',优先级高于 colors
colorsstring[][]分级配色数组,按分值区间取色,如 ['#F53F3F','#FF7D00','#F7BA1E','#00B42A','#0FC6C2']
showTextbooleanfalse是否常驻显示评分文字
textsstring[][]评分文字数组,与分值区间对应,如 ['极差','失望','一般','满意','惊喜']
showScorebooleanfalse是否显示分值数字
scoreTemplatestring''分值模板,支持 {value} 和 {total},如 '{value}/{total}'
scorePrecisionnumber-1分值小数位数,-1 表示按原值显示,如 2 则 3.5 显示为 3.50
voidColorstring''未选中星的颜色
gutternumber-1星标间距(px),-1 表示使用默认间距
precisionnumber1精度步进,如 0.1 支持十分位评分,allowHalf 优先
animationbooleantrue是否启入场动画(星星逐个弹跳点亮 + 选中星呼吸光晕)
direction'horizontal'|'vertical''horizontal'布局方向,垂直模式下星星纵向排列
tooltipsstring[]-每颗星对应的 hover 文字提示数组
size'small'|'middle'|'large''middle'尺寸

Methods 方法

方法参数返回说明
getValue()-number获取当前分值
setValue(v)numbervoid设置分值
getCount() / setCount(n)numbernumber / void星标总数读写
isAllowHalf() / setAllowHalf(b)booleanboolean / void半星模式读写
isDisabled() / setDisabled(b)booleanboolean / void禁用态读写
isReadonly() / setReadonly(b)booleanboolean / void只读态读写
isClearable()-boolean是否可清除
clear()-void清空分值为 0
getCharacter() / setCharacter(c)stringstring / void自定义字符读写
getActiveCharacter() / setActiveCharacter(c)stringstring / void选中态图标读写
getVoidCharacter() / setVoidCharacter(c)stringstring / void未选中态图标读写
getColor() / setColor(c)stringstring / void选中色读写
getColors() / setColors(arr)string[]string[] / void分级配色读写
isShowText() / setShowText(b)booleanboolean / void常驻文字开关
getTexts() / setTexts(arr)string[]string[] / void评分文字读写
isShowScore() / setShowScore(b)booleanboolean / void分值显示开关
getScoreTemplate() / setScoreTemplate(s)stringstring / void分值模板读写
getScorePrecision() / setScorePrecision(n)numbernumber / void分值小数位数读写
getVoidColor() / setVoidColor(c)stringstring / void未选中色读写
getGutter() / setGutter(n)numbernumber / void星标间距读写
getPrecision() / setPrecision(n)numbernumber / void精度步进读写
isAnimation() / setAnimation(b)booleanboolean / void入场动画开关
getDirection() / setDirection(v)stringstring / void布局方向读写('horizontal' / 'vertical')
getTooltips() / getSize()--获取对应配置
getState()-object获取完整状态快照
subscribe(fn)functionunsub订阅状态变更
destroy()-void销毁实例,清空 DOM 与事件

Events 事件

事件回调参数说明
onChange(value: number)分值变化时触发
onHoverChange(value: number)悬停分值变化时触发,配合 tooltips 显示提示文字

20. 自动化断言