Para instalar Vue.js en un proyecto de Laravel y poder usar sus componentes en nuestros desarrollos web lo que hemos de hacer es ejecutar el comando artisan php artisan ui vue
despues limpiamos la cahe de npm por si acaso, ejecutando npm cahe clear
y despues para terminar de instalar Vue.js y que se creen los archivos necesarios ejecutamos en la consola npm run dev
.
Ahora si vamos a la carpeta resources/js nos encontramos con una carpeta llamada components con un componente vue de ejemplo y dos archivos. app.js y bootstrap.js con los siguientes codigos,
app.js
/** * First we will load all of this project's JavaScript dependencies which * includes Vue and other libraries. It is a great starting point when * building robust, powerful web applications using Vue and Laravel. */ require('./bootstrap'); window.Vue = require('vue').default; /** * The following block of code may be used to automatically register your * Vue components. It will recursively scan this directory for the Vue * components and automatically register them with their "basename". * * Eg. ./components/ExampleComponent.vue -> <example-component></example-component> */ // const files = require.context('./', true, /\.vue$/i) // files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default)) Vue.component('example-component', require('./components/ExampleComponent.vue').default); /** * Next, we will create a fresh Vue application instance and attach it to * the page. Then, you may begin adding components to this application * or customize the JavaScript scaffolding to fit your unique needs. */ const app = new Vue({ el: '#app', });
y el archivo bootstrap.js
window._ = require('lodash'); /** * We'll load jQuery and the Bootstrap jQuery plugin which provides support * for JavaScript based Bootstrap features such as modals and tabs. This * code may be modified to fit the specific needs of your application. */ try { window.Popper = require('popper.js').default; window.$ = window.jQuery = require('jquery'); require('bootstrap'); } catch (e) {} /** * We'll load the axios HTTP library which allows us to easily issue requests * to our Laravel back-end. This library automatically handles sending the * CSRF token as a header based on the value of the "XSRF" token cookie. */ window.axios = require('axios'); window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; /** * Echo exposes an expressive API for subscribing to channels and listening * for events that are broadcast by Laravel. Echo and event broadcasting * allows your team to easily build robust real-time web applications. */ // import Echo from 'laravel-echo'; // window.Pusher = require('pusher-js'); // window.Echo = new Echo({ // broadcaster: 'pusher', // key: process.env.MIX_PUSHER_APP_KEY, // cluster: process.env.MIX_PUSHER_APP_CLUSTER, // forceTLS: true // });
Lo unico que tendremos que hacer para que se muestre en pantalla el componente de ejemplo que creó Laravel es colocar en alguna de nuestras vistas <example-component></example-component>
y aparecerá el componente.
En proximas publicaciones os mostraré a como hacer un CRUD sencillo con Laravel y Vue.js.