DEV Community

Cover image for Laravel 12 and Vue 3 Ultimate Starter Guide
Engineer Robin 🎭
Engineer Robin 🎭

Posted on

3 2 2 2 2

Laravel 12 and Vue 3 Ultimate Starter Guide

Laravel 12 and Vue 3 together form a powerful stack for building modern web applications. Laravel provides a robust backend framework, while Vue.js offers a reactive and flexible frontend. In this guide, we will walk through setting up a Laravel 12 project with Vue 3 using Vite, covering installation, configuration, and best practices to kickstart your development journey like a pro.


Step 1: Install Laravel 12

Before proceeding, ensure that you have PHP 8.2+, Composer, and Node.js (latest LTS) installed.

1.1 Install Laravel via Composer

Run the following command to create a fresh Laravel project:

composer create-project --prefer-dist laravel/laravel my-laravel-app
Enter fullscreen mode Exit fullscreen mode

Navigate to the project directory:

cd my-laravel-app
Enter fullscreen mode Exit fullscreen mode

1.2 Configure Environment

Duplicate the .env.example file and generate an application key:

cp .env.example .env
php artisan key:generate
Enter fullscreen mode Exit fullscreen mode

Update your .env file with database credentials:

DB_DATABASE=mydatabase
DB_USERNAME=root
DB_PASSWORD=
Enter fullscreen mode Exit fullscreen mode

Then, migrate the database:

php artisan migrate
Enter fullscreen mode Exit fullscreen mode

Laravel 12 and Vue 3 Ultimate Starter Guide

Step 2: Install Vue 3 and Vite

Laravel 12 ships with Vite for modern asset compilation.

2.1 Install Node Modules

Run:

npm install
Enter fullscreen mode Exit fullscreen mode

2.2 Install Vue and Additional Dependencies

npm install vue@latest vue-router@latest @vitejs/plugin-vue
Enter fullscreen mode Exit fullscreen mode

2.3 Configure Vite for Vue

Modify vite.config.js:

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

export default defineConfig({
    plugins: [
        laravel({
            input: ['resources/js/app.js'],
            refresh: true,
        }),
        vue(),
    ],
});
Enter fullscreen mode Exit fullscreen mode

Step 3: Set Up Vue in Laravel

3.1 Create Vue App Entry Point

Modify resources/js/app.js:

import { createApp } from 'vue';
import App from './components/App.vue';
import router from './router';

createApp(App).use(router).mount('#app');
Enter fullscreen mode Exit fullscreen mode

3.2 Create a Sample Vue Component

Create resources/js/components/App.vue:

<template>
    <div>
        <h1>Welcome to Laravel 12 with Vue 3</h1>
    </div>
</template>
Enter fullscreen mode Exit fullscreen mode

3.3 Setup Vue Router

Install Vue Router:

npm install vue-router@latest
Enter fullscreen mode Exit fullscreen mode

Create resources/js/router/index.js:

import { createRouter, createWebHistory } from 'vue-router';
import Home from '../components/Home.vue';

const routes = [
    { path: '/', component: Home }
];

const router = createRouter({
    history: createWebHistory(),
    routes,
});

export default router;
Enter fullscreen mode Exit fullscreen mode

Create resources/js/components/Home.vue:

<template>
    <div>
        <h2>This is the Home Page</h2>
    </div>
</template>
Enter fullscreen mode Exit fullscreen mode

Step 4: Update Blade Template

Modify resources/views/app.blade.php to include Vue:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Laravel 12 with Vue 3</title>
    @vite(['resources/js/app.js'])
</head>
<body>
    <div id="app"></div>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

Step 5: Run the Application

Compile the assets using Vite:

npm run dev
Enter fullscreen mode Exit fullscreen mode

Start the Laravel server:

php artisan serve
Enter fullscreen mode Exit fullscreen mode

Visit http://127.0.0.1:8000/ to see your Vue-powered Laravel app in action.


Laravel 12 and Vue 3 Ultimate Starter Guide

Conclusion

You’ve successfully set up Laravel 12 with Vue 3 using Vite! From here, you can expand your project by adding authentication, API handling, state management (Pinia/Vuex), and much more. This setup provides a solid foundation for building scalable and high-performance web applications.

Happy coding! πŸš€

Heroku

Deploy with ease. Manage efficiently. Scale faster.

Leave the infrastructure headaches to us, while you focus on pushing boundaries, realizing your vision, and making a lasting impression on your users.

Get Started

Top comments (0)

AWS Q Developer image

Your AI Code Assistant

Automate your code reviews. Catch bugs before your coworkers. Fix security issues in your code. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

πŸ‘‹ Kindness is contagious

Explore a trove of insights in this engaging article, celebrated within our welcoming DEV Community. Developers from every background are invited to join and enhance our shared wisdom.

A genuine "thank you" can truly uplift someone’s day. Feel free to express your gratitude in the comments below!

On DEV, our collective exchange of knowledge lightens the road ahead and strengthens our community bonds. Found something valuable here? A small thank you to the author can make a big difference.

Okay