VueJS Star Rating
Star Rating custom component using Pure VueJS application without any external package.
Project setup
npm install
Options
| Property | Type | Required | Description |
|---|---|---|---|
| star | Number | Required. | Default value of Star. Default value is 2 |
| maxStars | Number | Required. | Default value is 5. |
| hasResults | Boolean | Optional. | Displaying the result values. Default value is true. |
| hasDescription | Boolean | Optional. | Default value is true. |
| ratingDescription | Array | Required. | Displaying the rating values. Ex. [{
text: 'Poor',
class: 'star-poor'
},
{
text: 'Below Average',
class: 'star-belowAverage'
},
{
text: 'Average',
class: 'star-average'
},
{
text: 'Good',
class: 'star-good'
},
{
text: 'Excellent',
class: 'star-excellent'
}] |
| starSize | String | Optional. | Displaying the size of the stars. Default value is lg. We have lg | xs | 6x other optional values too. |
Usage
Step 1: import and use the custom Rating component.
import Rating from './components/Rating'
Step 2: Import the Rating component inside the App component
<script>
import Rating from './components/Rating'
export default {
name: 'app',
components: {
Rating
}
}
</script>
Step 3: Load defalt values to the component
data() {
return {
desc: [
{
text: 'Poor',
class: 'star-poor'
},
{
text: 'Below Average',
class: 'star-belowAverage'
},
{
text: 'Average',
class: 'star-average'
},
{
text: 'Good',
class: 'star-good'
},
{
text: 'Excellent',
class: 'star-excellent'
}
],
starSize: 'lg' //xs/6x
}
}
Step 4: Place the Rate component inside the template
<template>
<div id="app">
<Rating :star="2" :starSize="starSize" :hasResults="true" :hasDescription="true" :ratingDescription="desc" />
</div>
</template>
Compiles and hot-reloads for development
npm run serve
Screen Shot

Demo

Compiles and minifies for production
npm run build
Run your tests
npm run test