Vue 3 – How to use jquery datatable in vuejs application?

Vue 3 - How to use jquery datatable in vuejs application?

Hello friends, welcome back to my blog. Today in this blog post, I am going to show you, Vue 3 – How to use jquery datatable in vuejs application?

Friends with this post, we will cover with below functionalities:

  1. How to fetch and show api json data in vuejs application?
  2. How to use jquery datatable in vuejs application?
  3. Veujs datatable with dynamic data.

Experts : Vue Data table with Export Buttons(Print, CSV etc.).


Vuejs Datatable

Vue 3 came and if you are new then you must check below two link:

  1. Vuejs

Friends now I proceed onwards and here is the working code snippet for Vue 3 – How to use jquery datatable in vuejs application? and use this carefully to avoid the mistakes:

1. Firstly friends we need fresh vue 3 setup and for this we need to run below commands . Secondly we should also have latest node version installed on our system. With below we will have datatable, jquery, bootstrap and axios modules in our Vue 3 application:

npm install -g @vue/cli

vue create vuedatatable

cd vuedatatable

npm install --save datatables.net-dt

npm install jquery --save

npm i axios

npm i bootstrap

npm run serve //http://localhost:8080/

2. Now friends we need to add below code into src/App.vue file to check the final output on browser:

<template>
  
  <h1>Therichpost.com</h1>
   
   <table class="table table-hover table-bordered" id="example">
    <thead>
      <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Email</th>
        <th>Job Title</th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="user in users" :key="user.id">
        <td>{{user.id}}</td>
        <td>{{user.name}}</td>
        <td>{{user.email}}</td>
        <td>{{user.job_title}}</td>
      </tr>
      
    </tbody>
  </table>
  
</template>

<script>
//Bootstrap and jQuery libraries
import 'bootstrap/dist/css/bootstrap.min.css';
import 'jquery/dist/jquery.min.js';
//Datatable Modules
import "datatables.net-dt/js/dataTables.dataTables"
import "datatables.net-dt/css/jquery.dataTables.min.css"
import $ from 'jquery'; 


import axios from 'axios';
export default {
 
  mounted(){
    //API Call
    axios
    .get("https://www.testjsonapi.com/users/")
    .then((res)=>
    {
      this.users = res.data;
      $('#example').DataTable();
    })
  },
  data: function() {
        return {
            users:[]
        }
    },
}
</script>

Now we are done friends  also and If you have any kind of query or suggestion or any requirement then feel free to comment below.

Note: Friends, I just tell the basic setup and things, you can change the code according to your requirements. For better understanding must watch video above.

I will appreciate that if you will tell your views for this post. Nothing matters if your views will be good or bad.

Jassa

Thanks

Comments

29 responses to “Vue 3 – How to use jquery datatable in vuejs application?”

  1. Tim Kariuki Avatar
    Tim Kariuki

    Please include file export buttons: csv, excel, pdf

  2. Ajay Malhotra Avatar

    Sure and very soon.

  3. Tim Kariuki Avatar
    Tim Kariuki

    Still waiting… 🙂

  4. Ajay Malhotra Avatar

    Sorry busy in projects and will do. 🙂

  5. Nunik Avatar
    Nunik

    In my case “no data available in table”, how do i solve the problem?

  6. Ajay Malhotra Avatar

    Use like this:
    setTimeout(function(){ $(‘#example’).DataTable(); }, 3000);

    Thanks

  7. Nunik Avatar
    Nunik

    import axios from ‘axios’;

    export default {
    mounted() {
    axios
    .get(“API”)
    .then((res)=>
    {
    this.users = res.data;
    setTimeout(function(){
    $(‘#example’).DataTable();
    },
    3000
    );
    })
    },
    data: function() {
    return {
    users:[]
    }
    },
    }

    is it right?
    but still can’t show the data

  8. Ajay Malhotra Avatar

    Correct.
    And please try this API first:
    https://www.testjsonapi.com/users/

  9. Nunik Avatar
    Nunik

    thank you, it’s work but if i change with different API it doesn’t work, still can’t show the data

  10. Ajay Malhotra Avatar

    Then you can increase the time session:
    setTimeout(function(){ $(‘#example’).DataTable(); }, 5000);

  11. Kamal Kunwar Avatar
    Kamal Kunwar

    Hello,
    I am developing application for patient record system and need best pagination. I am using latest technologies – Laravel 8, Vue 3, and bootstrap. So, it is good to use jquery datable for pagination and search for the data and I also need to export the data in excel.

    I hope you will provide me best answer and the examples for it.

    thanks

  12. victor Avatar
    victor

    in case of insertions, and real time update of the data, is it good idea to use it ?

  13. Ajay Malhotra Avatar

    Yes it is good because it has many options like pagination, searching and sorting and if you want like export buttons as well then please check below link:

    https://therichpost.com/vue-3-datatable-with-export-buttons-print-csv-copy-with-dynamic-data/

    Thanks.

  14. Tim Kariuki Avatar
    Tim Kariuki

    This is awesome. May God bless you.

  15. John Avatar
    John

    Thanks for this.

  16. Ajay Malhotra Avatar

    You are welcome.

  17. mike Avatar
    mike

    Hi Man, how can I add styles with bootstrap to the table? because a tried putting classes but it doesn’t work:( hope you can help me

  18. Ajay Malhotra Avatar

    Yes we can do and I will show you working example.

  19. Luis Avatar
    Luis

    Hello there.

    I’ve tried your code to use DataTables with Vue 3, but I’m facing two problems:

    – The data is not being rendered once loaded from the API. I’ve tried with the setTimeout fix, but it still doesn’t work.

    – I’m using Vue Router, and when I navigate to another route/component, the DataTables wrapper with header and footer, remains, as if it was not unmounted, and the content of the other component is rendered inside it. Really weird! When I go back to the route/component using DataTables, it is rendered again, inside the unmounted wrapper. So, it’s nesting a new DataTables display inside the old wrapper, showing header and footer twice, 3 times, 4 and so on as I go back.

  20. Ajay Malhotra Avatar

    SURE AND I WILL GET BACK TO YOU 🙂

  21. mike Avatar
    mike

    Man, thanks. I’ll really appreciate it.

  22. kamal Chhetri Avatar
    kamal Chhetri

    Hello, it didn’t work in my vue.js-3
    I did exactly all. The format and structure is like datatable but none is functional. if we click any -> sort, search or row filters change, it goes blanks. And on footer, there is -> Showing 0 to 0 of 0 entries, prev and next is like dummy.
    I hope you have solution in vue 3 to show datatable and proper functional.

  23. Ajay Malhotra Avatar

    Can you please tell me the error in your console?

  24. jemish Avatar
    jemish

    DataTables.vue:47 Uncaught TypeError: $(…).DataTable is not a function

    how to fix this error in vue 3

  25. Ajay Malhotra Avatar

    I will make updated code and show you working thanks.