VueLatestTable

This repo aims to use a data table that is supported by the latest Vue version. I generally use the vuetify for the data table components however currently its data table is not compatible with Vue 3. That’s why I thought to create this repo to use for my own purpose actually.

Intallation

  • npm i vue-latest-table
  • npm i

that’s all.

Usage

in the setup section

import VueLatestTable from 'VueLatestTable'

in the template section

  <VueLatestTable
    :headers="headers" // the header
    :data="desserts" // the data
    :isSearchable="true" // it adds the search box
    searchPlaceholder="Search" // the placeholder in the search box
    :footer="{
      rowsPerPage: [3, '1', 'dsas', 10, 20, -1], // we only use the numbers, if there is a typo, we skip it. -1 means All
      allText: 'ALL' // for translation purposes
    }"
    :defaultTheme="true"
    noData="Sorry, there is no data to show for now..." // for translation purposes
    rowsPerPageText="Rows per page" // for translation purposes
  />

Github & npmjs

Example Data

  const headers = [
    {
      text: 'Dessert (100g serving)',
      align: 'start',
      filterable: false,
      value: 'name'
    },
    { text: 'Calories', value: 'calories' },
    { text: 'Fat (g)', value: 'fat' },
    { text: 'Carbs (g)', value: 'carbs' },
    { text: 'Protein (g)', value: 'protein' },
    { text: 'Iron (%)', value: 'iron' }
  ]

  const desserts = [
    {
      name: 'Frozen Yogurt',
      calories: 159,
      fat: 6.0,
      carbs: 24,
      protein: 4.0,
      iron: '1%'
    },
    {
      name: 'Ice cream sandwich',
      calories: 237,
      fat: 9.0,
      carbs: 37,
      protein: 4.3,
      iron: '1%'
    },
    {
      name: 'Eclair',
      calories: 262,
      fat: 16.0,
      carbs: 23,
      protein: 6.0,
      iron: '7%'
    },
    {
      name: 'Cupcake',
      calories: 305,
      fat: 3.7,
      carbs: 67,
      protein: 4.3,
      iron: '8%'
    },
    {
      name: 'Gingerbread',
      calories: 356,
      fat: 16.0,
      carbs: 49,
      protein: 3.9,
      iron: '16%'
    },
    {
      name: 'Jelly bean',
      calories: 375,
      fat: 0.0,
      carbs: 94,
      protein: 0.0,
      iron: '0%'
    },
    {
      name: 'Lollipop',
      calories: 392,
      fat: 0.2,
      carbs: 98,
      protein: 0,
      iron: '2%'
    },
    {
      name: 'Honeycomb',
      calories: 408,
      fat: 3.2,
      carbs: 87,
      protein: 6.5,
      iron: '45%'
    },
    {
      name: 'Donut',
      calories: 452,
      fat: 25.0,
      carbs: 51,
      protein: 4.9,
      iron: '22%'
    },
    {
      name: 'KitKat',
      calories: 518,
      fat: 26.0,
      carbs: 65,
      protein: 7,
      iron: '6%'
    },
    {
      name: 'Donut',
      calories: 452,
      fat: 25.0,
      carbs: 51,
      protein: 4.9,
      iron: '22%'
    }
  ]

Visualization

  #vueLatestTable {
    /* we can implement some CSS for this "Vue Latest Table" here */
    margin: 0 auto;
    margin-top: 30px;

    .searchBox {
      color: #333 !important;
    }
  }

You can implement some styles for the table in your App.vue or the page where you use it.

? Screenshots

Screen Shot 2023-01-02 at 19 10 55

Screen Shot 2023-01-02 at 19 15 32

Screen Shot 2023-01-02 at 19 11 17

GitHub

View Github