1.0.0 • Published 6 years ago
@pbartkowicz/vuetable v1.0.0
Table of contents
General
Vue table component
component is created with:
- Vue 2.6.10
Setup
install module locally with npm or yarn
npm i @pbartkowicz/vuetable
or
yarn add @pbartkowicz/vuetable
Usage
Import
import vuetable from '@pbartkowicz/vuetable'Register in components section
components:{
vuetable,
},Define array with columns and array with items objects
data(){
return{
headers:[
{
label: 'Name',
for: 'name'
},
{
label: 'Surname',
for: 'surname'
},
{
label: 'Gender',
for: 'gender'
}
],
people:[
{
name: 'John',
surname: 'Doe',
gender: 'male'
},
{
name: 'Joanna',
surname: 'Doe',
gender: 'female'
}
],
}
}In object in headers you have to define two keys:
- label - this is property to name column
- for - For what key in people array is this column
<vuetable :headers="headers" :items="people" />You can always use rowTemplate prop to set width foreach column.
<vuetable :headers="headers" :items="people" rowTemplate="33.3% 33.3% 33.3%"/>Props
| Prop | Type | Default | Required | Description |
|---|---|---|---|---|
| headers | Array | Yes | Array with columns. | |
| items | Array | Yes | Array with items. | |
| loading | Boolean | false | No | Set loading statement. |
| rowTemplate | String | No | Set column width. Use % or px and spaces between values | |
| rowClass | String | No | Set row class. | |
| headerClass | String | No | Set header class. | |
| rowIds | Boolean | false | No | Anable dynamic id's foreach row. |
| sortable | Boolean | false | No | Anable column sort ASC/DESC. Always will emmit @sort. |
| pagination | Boolean | false | No | Anable component build-in pagination. |
| perPage | Number | 10 | No | Set number of items to display. |
| paginationClass | String | No | Set pagination class. |
Slots
You can access to slot foreach column
<template v-slot:[forKeyFromHeaders]="{item}">Example:
<vuetable :headers="headers" :items="people" rowTemplate="33.3% 33.3% 33.3%">
<template v-slot:name="{item}">
{{item.name}}
</template>
</vuetable>And foreach header
<template v-slot:HEADER_[forKeyFromHeaders]="{item}">Example:
<vuetable :headers="headers" :items="people" rowTemplate="33.3% 33.3% 33.3%">
<template v-slot:HEADER_name="{item}">
{{item.name}}
</template>
</vuetable>Static slots
| Slot | Description |
|---|---|
| no-records | Slot if items array is empty. |
| back-to-first | Slot for back to first page button in build-in pagination. |
| prev | Slot for previous page button in build-in pagination. |
| next | Slot for next page button in build-in pagination. |
| go-to-last | Slot for go to last page button in build-in pagination. |
1.0.0
6 years ago