Run
yarn add vueified-datatables
or npm install vueified-datatables
In your code
import VueifiedDataTables from 'VueifiedDataTables'; Vue.use(VueifiedDataTables);
Then in your template
<vueified-datatable :url="URL_TO_JSON_DATA" :columns="YOUR_COLUMNS_ARRAY" :options="YOUR_OPTIONS_OBJECT(Optional)"></vueified-datatable>
let columns = [ { // the key to read from json data: 'id', // the table header (optional, will use key by default) title: 'User ID', // is column sortable {true|false} (optional, true by default) sortable: true, // is column searchable {true|false} (optional, true by default) searchable: true, // Callback, receives cell value and row, should return a vue component, if is set, cell will render the component component: function(value, row){ return { template: `<i @click="delete" class="fa fa-trash">`, }; }, }, { data: 'f_name', title: 'First Name', }, { data: 'l_name', title: 'Last Name', }, { data: 'id', title: 'Full Name', // Callback, receives cell value and row, should return string or int render: function(value, row){ return `${row.f_name} ${row.l_name}`; }, }, ];
Table will try first to run the component
function,
then the render
function, then wil default to the value.
let options = { // Current values are the defaults. // Language you can pass an object with your own language, // look in a language file (ins translations folder) for more details language: {}, // Number of rows to display by default rowsPerPage: 10, // Optional number of rows (for select by user) configRowsPerPage: [ 10, 25, 50, 100, ], // Classes to use in the table element tableClasses: '', // Display first and last buttons firstLast: false, // Display the search box search: true, // Display table header header: true, // Display table footer footer: false, };