Rate
Rate (평점)
평점을 매길 때 사용하는 컴포넌트예요.
출처: 문서
본문
기본 사용법 (Basic usage)
Rate는 평점을 여러 단계로 나누고, 이 단계들을 서로 다른 배경색으로 구분할 수 있어요. 기본적으로 배경색은 모두 같지만, colors 속성으로 세 단계를 반영하는 세 요소의 배열을 할당할 수 있어요. 두 임계값은 low-threshold와 high-threshold로 정의할 수 있어요. 또는 두 단계 사이의 임계값을 키로, 해당 색을 값으로 하는 객체를 할당할 수도 있어요.
import { ref } from 'vue'
const value1 = ref(0)
const value2 = ref(0)
const colors = ref(['#99A9BF', '#F7BA2A', '#FF9900']) // same as { 2: '#99A9BF', 4: { value: '#F7BA2A', excluded: true }, 5: '#FF9900' }
.demo-rate-block {
padding: 30px 0;
text-align: center;
border-right: solid 1px var(--el-border-color);
display: inline-block;
width: 49%;
box-sizing: border-box;
}
.demo-rate-block:last-child {
border-right: none;
}
.demo-rate-block .demonstration {
display: block;
color: var(--el-text-color-secondary);
font-size: 14px;
margin-bottom: 20px;
}
크기 (Sizes)
반 개 별 허용 (With allow-half)
allow-half 속성을 추가하면 반 개 별이 허용돼요.
텍스트 (With text)
text를 사용해 평점 점수를 나타내요. show-text 속성을 추가해서 Rate의 오른쪽에 텍스트를 표시해요. 점수별 텍스트는 texts로 할당할 수 있어요. texts는 최대 점수 max와 길이가 같아야 하는 배열이에요.
지우기 가능 (Clearable)
같은 값을 다시 클릭하면 값을 0으로 초기화할 수 있어요.
더 많은 아이콘 (More icons)
다양한 rate 컴포넌트를 구분하기 위해 다른 아이콘을 사용할 수 있어요. icons에 세 요소의 배열이나, 두 단계 사이의 임계값을 키로 하고 해당 아이콘을 값으로 하는 객체를 전달해서 아이콘을 커스터마이징할 수 있어요. 이 예제에서는 선택되지 않았을 때의 아이콘을 설정하는 void-icon도 사용해요.
읽기 전용 (Read-only)
읽기 전용 Rate는 평점 점수를 표시하기 위한 것이에요. 반 개 별을 지원해요. disabled 속성을 사용해서 컴포넌트를 읽기 전용으로 만들어요. show-score를 추가해서 오른쪽에 평점 점수를 표시해요. 또한 score-template 속성으로 점수 템플릿을 제공할 수 있어요. 반드시 {value}를 포함해야 하고, {value}는 평점 점수로 대체돼요.
커스텀 스타일 (Custom styles)
rate 컴포넌트에 커스텀 스타일을 설정할 수 있어요. css/scss 언어로 전역 또는 로컬 색을 바꿔요. 전역 색 변수를 몇 가지 설정해 두었어요: --el-rate-void-color, --el-rate-fill-color, --el-rate-disabled-void-color, --el-rate-text-color. 이렇게 사용할 수 있어요: :root { --el-rate-void-color: red; --el-rate-fill-color: blue; }.
기본 변수 (Default Variables)
| Variable | Default Color |
|---|---|
| --el-rate-void-color | var(--el-border-color-darker) |
| --el-rate-fill-color | #f7ba2a |
| --el-rate-disabled-void-color | var(--el-fill-color) |
| --el-rate-text-color | var(--el-text-color-primary) |
API
Attributes
| Name | Description | Type | Default |
|---|---|---|---|
| model-value / v-model | 바인딩 값 | number | 0 |
| max | 최대 평점 | number | 5 |
| size | Rate의 크기 | enum | — |
| disabled | Rate 읽기 전용 여부 | boolean | false |
| allow-half | 반 개 별 선택 허용 여부 | boolean | false |
| low-threshold | 낮음-중간 단계 사이의 임계값. 값 자체는 낮은 단계에 포함돼요 | number | 2 |
| high-threshold | 중간-높음 단계 사이의 임계값. 값 자체는 높은 단계에 포함돼요 | number | 4 |
| colors | 아이콘 색. 배열이면 3개 요소를 가져야 하고 각각이 점수 단계와 대응돼요. 객체이면 두 단계 사이의 임계값을 키로, 해당 색을 값으로 해요 | array / object | ['#f7ba2a', '#f7ba2a', '#f7ba2a'] |
| void-color | 선택되지 않은 아이콘의 색 | string | #c6d1de |
| disabled-void-color | 선택되지 않은 읽기 전용 아이콘의 색 | string | #eff2f7 |
| icons | 아이콘 컴포넌트. 배열이면 3개 요소를 가져야 하고 각각이 점수 단계와 대응돼요. 객체이면 두 단계 사이의 임계값을 키로, 해당 아이콘 컴포넌트를 값으로 해요 | array / object | [StarFilled, StarFilled, StarFilled] |
| void-icon | 선택되지 않은 아이콘의 컴포넌트 | string / Component | Star |
| disabled-void-icon | 선택되지 않은 읽기 전용 아이콘의 컴포넌트 | string / Component | StarFilled |
| show-text | 텍스트 표시 여부 | boolean | false |
| show-score | 현재 점수 표시 여부. show-score와 show-text는 동시에 true일 수 없어요 | boolean | false |
| text-color | 텍스트 색 | string | '' |
| texts | 텍스트 배열 | array | ['Extremely bad', 'Disappointed', 'Fair', 'Satisfied', 'Surprise'] |
| score-template | 점수 템플릿 | string | |
| clearable 2.2.18 | 값을 0으로 초기화할 수 있는지 여부 | boolean | false |
| id | 네이티브 id 속성 | string | — |
| aria-label a11y 2.7.2 | Rate의 aria-label과 동일 | string | — |
| label a11y deprecated | Rate의 aria-label과 동일 | string | — |
Events
| Name | Description | Type |
|---|---|---|
| change | rate 값이 변경될 때 트리거 | Function |
Exposes
| Name | Description | Type |
|---|---|---|
| setCurrentValue | 현재 값 설정 | Function |
| resetCurrentValue | 현재 값 초기화 | Function |
더 알아보기 (Learn more)
- Radio 컴포넌트 — 라디오
- Select 컴포넌트 — 선택
- Element Plus 시작하기 — 프로젝트 설정