Tutorial CRUD Laravel 7 & Vue JS #3 : Proses Menampilkan Data


Fika Ridaul Maulayya
I'm Fika Ridaul Maulayya, a Full-Stack Web Developer, Content Creator and CO-Founder Santri Koding. I share everything i know with Article, Screencasts and E-Books at SantriKoding.com

Tutorial CRUD Laravel 7 & Vue JS #3 : Proses Menampilkan Data - Halo teman-teman semuanya, di artikel kali ini kta semua akan belajar bagaimana cara menampilkan data di Vue JS dari API yang sudah kita buat sebelumnya.

Di artikel sebelumnya kita juga sudah berhasil membuat component-component di Vue JS, diamana component ini akan kita gunakan salah satunya untuk menampilkan datanya.

Langkah 1 - Membuat Route di Vue JS

Pertama kita akan menambahkan sebuah route terlebih dahulu, silahkan teman-teman buka file resources/js/app.js dan silahkan ganti kodenya menjadi seperti berikut ini :

require('./bootstrap');

window.Vue = require('vue');

import VueRouter from 'vue-router';
Vue.use(VueRouter);

import VueAxios from 'vue-axios';
import axios from 'axios';

import App from './App.vue';
Vue.use(VueAxios, axios);

import IndexComponent from './components/posts/Index.vue';
import CreateComponent from './components/posts/Create.vue';
import EditComponent from './components/posts/Edit.vue';

const routes = [
    {
        name: 'posts',
        path: '/',
        component: IndexComponent
    },
    {
        name: 'create',
        path: '/create',
        component: CreateComponent
    },
    {
        name: 'edit',
        path: '/edit/:id',
        component: EditComponent
    }
];

const router = new VueRouter({
    mode: 'history',
    routes: routes
});

const app = new Vue(Vue.util.extend({ router }, App)).$mount('#app');

Kode di atas, kita mengimport beberapa library dan component yang akan kita gunakan dalam proses pembuatan CRUD nanti.

Kita juga sudah menambahkan beberapa route untuk beberapa proses, yaitu seperti menampilkan data, menyimpan data dan juga mengedit data.

Sekarang, silahkan teman-teman buka file resources/js/App.vue dan silahkan masukkan kode berikut ini :

<template>
    <router-view></router-view>
</template>

<script>
    export default {


    }
</script>

Kode di atas fungsinya akan menampilkan route-route kita di layar browser dimana route-route ini kita sudah definisikan di dalam file resources/js/app.js

Langkah 2 - Proses Menampilkan Data

Sekarang kita akan coba menampilkan data dari API yang sebelumnya kita sudah buat, silahkan teman-teman buka file resources/js/components/posts/Index.vue dan masukkan kode berikut ini :

<template>
    <div class="container mt-3">
        <div class="row justify-content-center">
            <div class="col-md-12">
                <div class="card card-default">
                    <div class="card-header">POSTS</div>

                    <div class="card-body">
                        <router-link :to="{ name: 'create' }" class="btn btn-md btn-success">TAMBAH POST</router-link>

                        <div class="table-responsive mt-2">
                            <table class="table table-hover table-bordered">
                                <thead>
                                <tr>
                                    <th>TITLE</th>
                                    <th>KONTEN</th>
                                    <th>AKSI</th>
                                </tr>
                                </thead>
                                <tbody>
                                <tr v-for="(post, index) in posts" :key="post.id">
                                    <td>{{ post.title }}</td>
                                    <td>{{ post.content }}</td>
                                    <td class="text-center">
                                        <router-link :to="{name: 'edit', params: { id: post.id }}" class="btn btn-sm btn-primary">EDIT</router-link>
                                        <button @click.prevent="PostDelete(post.id, index)" class="btn btn-sm btn-danger">HAPUS</button>
                                    </td>
                                </tr>
                                </tbody>
                            </table>
                        </div>

                    </div>
                </div>
            </div>
        </div>
    </div>
</template>


<script>
    export default {
        data() {
            return {
                posts: []
            }
        },
        created() {
            let uri = `http://localhost:8000/api/posts`;
            this.axios.get(uri).then(response => {
                this.posts = response.data.data;
            });
        }
    }
</script>

Bisa teman-teman lihat, disini kita mengambil data API dari http://localhost:8000/api/posts kemudian data tersebut kita parsingkan ke data posts.

Kurang lebih di bagian ini :

export default {
        data() {
            return {
                posts: [] // mendefisikan variabel posts
            }
        },
        created() {
            let uri = `http://localhost:8000/api/posts`;
            this.axios.get(uri).then(response => {
                this.posts = response.data.data; //hasil response akan di masukkan ke variabel posts
            });
        }
    }

Setelah data berhasil terambil, di dalam template HTML kita tinggal melakukan perulangan menggunakan direktif v-for. Kurang lebih kodenya seperti ini :

<tr v-for="(post, index) in posts" :key="post.id">
   <td>{{ post.title }}</td>
   <td>{{ post.content }}</td>
   <td class="text-center">
       <router-link :to="{name: 'edit', params: { id: post.id }}" class="btn btn-sm btn-primary">EDIT</router-link>
       <button @click.prevent="PostDelete(post.id)" class="btn btn-sm btn-danger">HAPUS</button>
    </td>
</tr>

Langkah 3 - Compile JavaScript

Terakhir, sebelum kita meilihat project kita, kita harus melakukan proses compile atau bundle file-file Vue JS kita ke dalam file app.js dengan bantuan Laravel MIX.

Silahkan teman-teman jalankan perintah di bawah ini untuk melakukan compile atau bundle :

npm run watch

Silahkan tunggu proses sampai selesai, ini akan memakan waktu lebih lama karena akan mengcompile semua file-file Vue dan JavaScript kita.

Langkah 4 - Mencoba Menjalankan Aplikasi

Oke, setelah proses compile selesai, silahkan sekarang teman-teman bisa jalankan laravel built in servernya dengan cara :

php artisan serve

Maka jika berhasil, kurang lebih tampilannya seperti berikut ini :


KESIMPULAN

Pada artikel kali ini kita semua sudah berhasil menambahkan beberapa route untuk aplikasi kita dan kita juga sudah berhasil menampilkan data dari API ke aplikasi kita.

Di artikel selanjutnya kita akan mencoba memasukkan data ke database menggunakan API dan kita akan menggunakan component yang sudah kita buat dengan Vue JS.

Terima Kasih.


Fika Ridaul Maulayya
I'm Fika Ridaul Maulayya, a Full-Stack Web Developer, Content Creator and CO-Founder Santri Koding. I share everything i know with Article, Screencasts and E-Books at SantriKoding.com
KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami

KOMENTAR