Cara Install dan Menggunakan Vue 3 di Laravel 9

whynwd

whynwd Minggu, 07 Agustus 2022

Untuk dapat menggunakan library javascript pada aplikasi laravel, seperti Vue, tentu kita perlu melakukan penginstalan package itu sendiri.

Cara Install dan Menggunakan Vue 3 di Laravel 9

Tetapi, khususnya Vue, tidak cukup hanya satu package Vue saja yang diinstall. Jika menggunkan syntax vue untuk antarmuka aplikasi, selain modul Vue yang diperlukan, ada plugin tambahan atau depedensi pendukung agar syntax vue dapat berjalan.

Sebenarnya cukup mudah dan sederhana. Untuk contoh, dan cara penggunaanya akan di jelaskan di bawah.

Install Laravel & Vue

Kita akan mengunakan Vue sebagai frontend aplikasi laravel. Kita mulai dari melakukan penginstalan proyek laravel baru, dan menambahkan package Vue ke proyek.

Versi laravel yang digunakan adalah versi 9.x.x, dan versi Vue yang diinstall / digunakan adalah versi 3.x.x.

laravel new lavue
cd lavue

npm install
npm install vue@latest --save-dev
//package.json
{
  "private": true,
  "scripts": {
     "dev": "vite",
     "build": "vite build"
  },
  "devDependencies": { 
     "laravel-vite-plugin": "^0.5.0",
     "vite": "^3.0.0",
     "vue": "^3.2.37"
     ...
  }
}

Konfigurasi Vue

Setelah Vue selesai diinstall, kita lanjutkan dengan membuat instance, komoponen, dan konfigurasi lainnya yang diperlukan.

Kita mulai dari membuat Vue instance. Silakan tambahkan dibawah ini pada file resources/js/app.js.

import { createApp } from 'vue'

import App from './Layouts/App.vue'

const app = createApp(App).mount('#app')

Setelah itu, kita buat komponen root. Pada direktori resources/js, buat folder baru dengan nama Layouts dan tambahkan file App.vue di dalamnya.

Copas template berikut pada komonen App.vue.

//resources/js/Layouts/App.vue
<script setup>
import Landing from '../pages/Landing.vue'
</script>

<template>
  <Landing />
</template>

Kita buat lagi sebuah komponen. Silakan buat folder baru di resources/js dengan nama Pages, dan tambahkan komponen Landing.vue di dalamnya. Copas template di bawah ini pada file Landing.vue.

//resources/js/Pages/Landing.vue
<script setup>
import { ref } from 'vue'

const lang = ref('Welcome');
const trans = ref('EN >> ID');

function toggleLang(){
  [lang.value, trans.value] = lang.value === 'Welcome' ? ["Selamat datang", "ID >> EN"] : ["Welcome", 'EN >> ID']
}
</script>

<template>
<div class="container">
  <h1>{{lang}}</h1>
  <button @click="toggleLang" >{{trans}}</button>
</div>
</template>

<style>
.container {
  width: 50%;
  margin: 0 auto;
  text-align: center;
}
</style>

Selanjutnya, buat file baru di direktori resources/views dengan nama app.blade.php, lalu copas template di bawah ini.

//resources/views/app.blade.php
<html lang="en">
<head>
   <title>Laravel - Vue 3</title>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1">
   @vite('resources/js/app.js')
</head>
<body id="app">

</body>
</html>

Terakhir, buka route web.php, ubah route yang ada dengan di bawah ini.

Route::get('/{any}', function () {
    return view('app');
})->where('any', '.*');

Konfigurasi Vite

Pada file app.blade.php diatas, selain kita tetapkan selector komponen root, kita tambahkan juga script js yang dipanggil dengan directive @vite() yang merupakan aset modul yang telah di compile.

vite sendiri adalah build tool untuk bundling aset. vite digunakan sebagai pengganti laravel mix, dan otomatis disertakan / diatur pada instalasi proyek laravel baru. Sedangkan untuk laravel Mix, kita tetap masih bisa menggunakannya, dan jika tidak ingin menggunakan Vite tinggal membuat pengaturan konfigurasi laravel Mix.

Karena kita menggunakan Vite, kita akan membuat pengaturan konfigurasinya. Lebih tepatnya konfigurasi tambahan.

Konfigurasi tambahan yang akan kita buat adalah menambahkan plugin agar template atau komponen vue dapat dibaca atau digunakan.

Kita akan menginstall @vitejs/plugin-vue. Mari kita install via npm.

npm i @vitejs/plugin-vue --save-dev

Setelah selesai diinstall, buka file vite.config.js, buat seperti di bawah ini.

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue';

export default defineConfig({
  plugins: [
    laravel({
      input: 'resources/js/app.js',
      refresh: true,
    }),
    vue({
      template: {
        transformAssetUrls: {
          base: null,
          includeAbsolute: false,
        },
      },
    }),
  ],
});

Sampai disini, silakan buka terminal, buat 2 tab, jalankan npm run dev dan php artisan serve. Setelah server berjalan, silakan buka aplikasi di browser.

Hasilnya seperti gambar di bawah ini.

Cara Install dan Menggunakan Vue 3 di Laravel 9

Selesai

Instalasi dan konfigurasi Vue 3 di laravel 9 telah selesai dan siap digunakan. Kita sampai disini. Silakan dicoba.

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel