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

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

by therichpost
Published: Updated: 29 comments
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

You may also like

29 comments

Tim Kariuki March 25, 2021 - 8:23 am

Please include file export buttons: csv, excel, pdf

Reply
Ajay Malhotra March 25, 2021 - 8:24 am

Sure and very soon.

Reply
Tim Kariuki April 3, 2021 - 7:50 am

Still waiting… 🙂

Reply
Ajay Malhotra April 3, 2021 - 11:27 am

Sorry busy in projects and will do. 🙂

Reply
Nunik May 7, 2021 - 2:06 am

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

Reply
Ajay Malhotra May 7, 2021 - 4:53 am

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

Thanks

Reply
Tim Kariuki June 22, 2021 - 7:11 am

This is awesome. May God bless you.

Reply
Ajay Malhotra June 22, 2021 - 7:13 am

Great.

Reply
Nunik May 7, 2021 - 9:43 am

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

Reply
Ajay Malhotra May 7, 2021 - 11:18 am

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

Reply
Nunik May 9, 2021 - 12:58 pm

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

Reply
Ajay Malhotra May 9, 2021 - 3:09 pm

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

Reply
Kamal Kunwar May 21, 2021 - 2:29 pm

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

Reply
Ajay Malhotra May 21, 2021 - 2:33 pm

Yes it is good and check this data table with export example:
https://therichpost.com/vue-3-datatable-with-export-buttons-print-csv-copy-with-dynamic-data/

Reply
victor May 23, 2021 - 8:13 am

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

Reply
Ajay Malhotra May 23, 2021 - 8:17 am

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.

Reply
John July 22, 2021 - 9:37 am

Thanks for this.

Reply
Ajay Malhotra July 22, 2021 - 4:04 pm

You are welcome.

Reply
mike September 13, 2021 - 5:38 pm

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

Reply
Ajay Malhotra September 14, 2021 - 3:56 am

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

Reply
mike September 17, 2021 - 10:22 pm

Man, thanks. I’ll really appreciate it.

Reply
Luis September 16, 2021 - 12:24 pm

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.

Reply
Ajay Malhotra September 16, 2021 - 3:05 pm

SURE AND I WILL GET BACK TO YOU 🙂

Reply
kamal Chhetri September 26, 2021 - 1:25 pm

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.

Reply
Ajay Malhotra September 27, 2021 - 7:03 am

Can you please tell me the error in your console?

Reply
jemish April 7, 2022 - 1:43 pm

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

how to fix this error in vue 3

Reply
Ajay Malhotra April 8, 2022 - 4:15 am

I will make updated code and show you working thanks.

Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.