Panduan praktis dan terstruktur mengenai panduan vue.js dan express.js: installasi dan konfigurasi vue router (part 3) berstandar enterprise. Pelajari konsep, implementasi kode modern, dan tips arsitektur enterprise siap produksi.
Selamat datang di seri tutorial engineering SiHubung! Pada artikel ini, kita akan membedah secara komprehensif implementasi Panduan Vue.Js Dan Express.Js: Installasi Dan Konfigurasi Vue Router (Part 3) Berstandar Enterprise dengan standar kode bersih (clean code), performa tinggi, dan arsitektur siap produksi.

Membangun aplikasi web di era modern memerlukan pondasi yang kokoh. Framework modern memberikan fleksibilitas luar biasa bagi developer untuk menghadirkan fitur kompleks secara cepat tanpa mengabaikan aspek keamanan dan keandalan sistem.

Tahapan Implementasi & Walkthrough Kode

Berikut adalah langkah demi langkah teknis yang dapat Anda ikuti langsung pada codebase Anda:

Tahap 1: Penulisan Kode & Konfigurasi

npm install axios@0.21.1

Tahap 2: Penulisan Kode & Konfigurasi

npm install bootstrap@5.1.0

Tahap 3: Penulisan Kode & Konfigurasi

import { createApp } from 'vue'
import App from './App.vue'

//import Bootstrap
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap/dist/js/bootstrap.min'

const app = createApp(App)

app.mount('#app')

Tahap 4: Penulisan Kode & Konfigurasi

//import Bootstrap
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap/dist/js/bootstrap.min'

Tahap 5: Penulisan Kode & Konfigurasi

<template>
  <main class="container mt-custom">
      <div class="bg-light p-5 rounded">
        <h1>EXPRESS.JS + VUE.JS</h1>
        <p class="lead">Tutorial FullStack Express.js dan Vue.js oleh <strong>SantriKoding.com</strong></p>
        <a class="btn btn-lg btn-primary" href="http://santrikoding.com" target="_blank" role="button">SELENGKAPNYA</a>
      </div>
    </main>
</template>

<script>
export default {

}
</script>

<style>

</style>

Tahap 6: Penulisan Kode & Konfigurasi

<template>
  <div class="container mt-custom">
      <div class="row">
          <div class="card border-0 rounded shadow-sm">
              <div class="card-body">
                  HALAMAN INDEX POSTS
              </div>
          </div>
      </div>
  </div>
</template>

<script>
export default {

}
</script>

<style>

</style>

Tahap 7: Penulisan Kode & Konfigurasi

<template>
  <div class="container mt-custom">
      <div class="row">
          <div class="card border-0 rounded shadow-sm">
              <div class="card-body">
                  HALAMAN TAMBAH POSTS
              </div>
          </div>
      </div>
  </div>
</template>

<script>
export default {

}
</script>

<style>

</style>

Tahap 8: Penulisan Kode & Konfigurasi

<template>
  <div class="container mt-custom">
      <div class="row">
          <div class="card border-0 rounded shadow-sm">
              <div class="card-body">
                  HALAMAN EDIT POSTS
              </div>
          </div>
      </div>
  </div>
</template>

<script>
export default {

}
</script>

<style>

</style>

Tahap 9: Penulisan Kode & Konfigurasi

npm install vue-router@4.0.11

Tahap 10: Penulisan Kode & Konfigurasi

//import vue router
import { createRouter, createWebHistory } from 'vue-router'

//define a routes
const routes = [
    {
        path: '/',
        name: 'home',
        component: () => import( /* webpackChunkName: "home" */ '@/views/Index.vue')
    },
    {
        path: '/posts',
        name: 'posts.index',
        component: () => import( /* webpackChunkName: "post.index" */ '@/views/posts/Index.vue')
    },
    {
        path: '/posts/create',
        name: 'posts.create',
        component: () => import( /* webpackChunkName: "post.create" */ '@/views/posts/Create.vue')
    },
    {
        path: '/posts/edit/:id',
        name: 'posts.edit',
        component: () => import( /* webpackChunkName: "post.edit" */ '@/views/posts/Edit.vue')
    }
]

//create router
const router = createRouter({
    history: createWebHistory(),
    routes  // config routes
})

export default router

Tahap 11: Penulisan Kode & Konfigurasi

//import vue router
import { createRouter, createWebHistory } from 'vue-router'

Tahap 12: Penulisan Kode & Konfigurasi

{
  path: '/',
  name: 'home',
  component: () => import( /* webpackChunkName: "home" */ '@/views/Index.vue')
},

Tahap 13: Penulisan Kode & Konfigurasi

import { createApp } from 'vue'
import App from './App.vue'

//import Bootstrap
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap/dist/js/bootstrap.min'

//import router
import router from './router'

const app = createApp(App)

//use vue router
app.use(router)

app.mount('#app')

Tahap 14: Penulisan Kode & Konfigurasi

//import router
import router from './router'

Tahap 15: Penulisan Kode & Konfigurasi

//use vue router
app.use(router)

Tahap 16: Penulisan Kode & Konfigurasi

<template>
  <div>
    <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
      <div class="container">
        <a class="navbar-brand" href="#">EXPRESS.JS + VUE.JS</a>
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse"
          aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarCollapse">
          <ul class="navbar-nav me-auto mb-2 mb-md-0">
            <li class="nav-item">
              <router-link :to="{name: 'home'}" class="nav-link" aria-current="page">HOME</router-link>
            </li>
            <li class="nav-item">
              <router-link :to="{name: 'posts.index'}" class="nav-link">POSTS</router-link>
            </li>
          </ul>
          <form class="d-flex">
            <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
            <button class="btn btn-success" type="submit">Search</button>
          </form>
        </div>
      </div>
    </nav>

    <!-- render vue router -->
    <router-view></router-view>

  </div>
</template>

<script>
  export default {

  }
</script>

<style>
 body {
   background-color: lightgray !important;
 }
 .mt-custom {
   margin-top: 110px;
 }
</style>

Tahap 17: Penulisan Kode & Konfigurasi

<!-- render vue router -->
<router-view></router-view>
💡 Tips Rekayasa Perangkat Lunak (SiHubung Engineering Best Practice)

Selalu gunakan pendekatan deklaratif, validasi input seawal mungkin di boundary layer, dan lakukan logging terstruktur untuk memudahkan observability ketika sistem dijalankan di lingkungan cloud produksi.

Kesimpulan

Dengan mengikuti langkah-langkah terstruktur di atas, implementasi modul Anda akan jauh lebih rapi, aman dari bug umum, serta siap diskalakan ke lingkungan produksi.

Nantikan artikel tutorial praktis lainnya seputar fullstack development, microservices, dan otomasi AI di Blog Engineering SiHubung. Selamat mencoba!