Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Laravel with Vue.js - Code Samples


Laravel with Vue.js - Code Samples


Sure, I'd be happy to provide you with some important code samples and detailed explanations for using Laravel with Vue.js.

Setting up the Project

To get started, you'll need to have Laravel and Vue.js installed on your system. You can install them using the following commands:


composer global require laravel/installer
npm install -g @vue/cli

Once you have the necessary tools installed, you can create a new Laravel project and integrate Vue.js into it:


laravel new my-project
cd my-project

Integrating Vue.js with Laravel

Laravel comes with built-in support for Vue.js, so integrating the two is relatively straightforward. Here's how you can set it up:

1. Install Vue.js Dependencies

First, you need to install the necessary Vue.js dependencies in your Laravel project:


npm install vue vue-loader vue-template-compiler --save-dev

2. Configure Webpack

Next, you'll need to configure Webpack to handle your Vue.js components. Open the `webpack.mix.js` file in the root of your project and add the following lines:

javascript
const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
   .vue()
   .sass('resources/sass/app.scss', 'public/css');

This configuration will tell Webpack to compile your Vue.js components and include them in your application's JavaScript bundle.

3. Create a Vue.js Component

Now, let's create a simple Vue.js component. Create a new file called `HelloWorld.vue` in the `resources/js/components` directory:

html
<template>
  <div>
    <h2>Hello, {{ name }}!</h2>
    <button @click="greet">Greet</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      name: 'World'
    }
  },
  methods: {
    greet() {
      alert(`Hello, ${this.name}!`);
    }
  }
}
</script>

This component displays a simple greeting and a button that triggers an alert when clicked.

4. Register the Vue.js Component

Next, you need to register the Vue.js component in your Laravel application. Open the `resources/js/app.js` file and add the following code:

javascript
import Vue from 'vue';
import HelloWorld from './components/HelloWorld.vue';

new Vue({
  el: '#app',
  components: {
    HelloWorld
  }
});

This code imports the `HelloWorld` component and registers it with the Vue.js instance.

5. Render the Vue.js Component

Finally, you need to render the Vue.js component in your Laravel view. Open the `resources/views/welcome.blade.php` file and add the following code:

html
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Laravel</title>
        <link href="{{ asset('css/app.css') }}" rel="stylesheet">
    </head>
    <body>
        <div id="app">
            <hello-world></hello-world>
        </div>
        <script src="{{ asset('js/app.js') }}"></script>
    </body>
</html>

This code adds a `

` element with the ID `app` and includes the `` component inside it. The `app.js` script file, which contains the Vue.js instance and the `HelloWorld` component, is also included at the bottom of the page.

In this example, we've covered the basic steps to integrate Vue.js with a Laravel project. You can now build more complex applications by creating additional Vue.js components and integrating them into your Laravel views. Remember to keep your code organized and modular, and to follow best practices for both Laravel and Vue.js development.