Table of Content
Instalasi
Btw, Saya menggunakan Laragon dia paket lengkap sudah include nodejs, composer, php juga. Ikuti langkah berikut:
- composer create-project laravel/laravel nama_folder
- cd nama_folder
- composer require laravel/ui
- php artisan ui vue
- npm install
- npm run dev (harus dijalankan, bila tidak maka akan error
Mix manifest not found at...) - jalankan juga
php artisan serve
Logicnya seperti ini. Karena VueJS konsep SPA(Single Page Application), jadi kita cukup punya 1 route di laravel yg akan dijadikan entripoint, Misal:
index.html
<!DOCTYPE html>
<html>
<head>
<title>Laravel Vite Example</title>
@vite('resources/css/app.css')
</head>
<body>
<div id="app">
<example-component></example-component>
</div>
@vite('resources/js/app.js')
</body>
</html>app.js
Ini entry point milik Vuejs, setting router akan disini! resources/js/app.js
import './bootstrap';
import { createApp } from 'vue';
const app = createApp({});
import ExampleComponent from './components/ExampleComponent.vue';
app.component('example-component', ExampleComponent);
app.mount('#app');Kode diatas belum menggunakan Vue Router. Berikut contoh bentuk komponen dari VueJS.
resources/js/components/ExampleComponent.vue
<template>
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Example Component</div>
<div class="card-body">
I'm an example component.
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
mounted() {
console.log('Component mounted.')
}
}
</script>Update: Untuk memanggil route awal ke index.html kan seperti ini: web.php
Route::get('/', function () {
return view('index');
});Nah kita kan sudah buat route di router.js -> 3. Vue Router. Ada route tapi kok error? mau gamau balik ke home nya atau localhost:8000/.
Nah untuk mengatasinya kita buatkan route seperti ini:
Route::get('/{any}', function(){
return view('index');
})->where('any', '.*');Penjelasan:
'/{any}': Ini adalah pola rute yang menyatakan bahwa URL yang cocok akan diproses oleh fungsi tersebut.{any}adalah parameter dinamis yang akan menangkap bagian dari URL apapun setelah garis miring (slash/).>where('any', '.*'): Ini adalah batasan yang diterapkan pada parameter{any}. Dalam hal ini, batasan'.*'adalah ekspresi reguler yang cocok dengan string apa pun, termasuk string kosong. Ini berarti rute ini akan cocok dengan URL apa pun yang mengikuti garis miring/, dan parameter{any}akan menangkap seluruh bagian URL tersebut.
Maka ketika kita mengetik alamat yg tertera di router.js maka tidak ada error lagi:

Date: 23-07-2024