fbpx

Configurando o Vue 3 no Laravel 8

Configurando o Vue 3 no Laravel 8

Saudações, dev! Se você chegou até esse post é porque precisa fazer esses dois frameworks “deliciosos” conversarem, formando o “Laravue”, certo? Então vamos lá! 🚀

Para esse tutorial, estou assumindo que você já instalou e configurou o Composer, Laravel Installer e Vue CLI. As versões que estou usando são:

  • Composer: 2.1.5
  • Laravel Installer: 4.2.7
  • NPM: 7.19.1
  • Vue CLI: 4.5.13

Mãos à obra! 😎👍

Passo 1: Criar o Projeto Laravel

Abra o terminal e crie um projeto Laravel usando um dos seguintes comandos:

 composer create-project --prefer-dist laravel/laravel laravue
 //.. ou
 laravel new laravue 

Note que nos comandos, laravue é o nome do seu projeto 😉.

Passo 2: Instalar o Vue e suas dependências

Depois que o projeto foi criado, ainda usando o terminal, acesse sua pasta.

Agora vamos instalar o pacote laravel/ui com o comando:

composer require laravel/ui

Agora vamos instalar o Vue usando o seguinte comando:

php artisan ui vue

Esse comando preparou o Laravel para receber o Vue, configurando o arquivo webpack.mix.js e criando um componente de exemplo, porém ainda na versão 2. Vamos pedir para instalar o Vue 3 usando o seguinte comando:

npm install --save vue@next && npm install --save-dev vue-loader@next

Passo 3: Verificar o arquivo Mix

Abra o arquivo webpack.mix.js, que fica na raiz do projeto, e verifique se o método .vue() foi adicionado na cadeia de métodos do mix.js. Note que a versão mínima do Laravel Mix recomendada é a 6.

O código do mix.js deve ficar parecido com o exemplo a seguir:

mix.js('resources/js/app.js', 'public/js')
    .vue()  //..verify this!
    .postCss('resources/css/app.css', 'public/css', [
        //
    ]);

Passo 4: Criar um componente Vue

Agora vamos até a pasta /resources/js. Note que há uma pasta chamada components. É nessa pasta que ficarão todos os componentes do Vue. Note que já existe um componente chamado ExampleComponent, criado pelo Laravel UI. Agora crie um arquivo chamado Home.vue. O código desse arquivo pode ser algo como:

<template>
  <div>
    <h1>Welcome to Laravue Project!</h1>
    <h2>{{ devName }}</h2>
  </div>
</template>

<script>
export default {
  setup: () => ({
    devName: "Jorge Luís Gregório",
  }),
};
</script>

<style scoped>
/* CSS Here! */
</style>

Passo 5: Importar o Vue para o arquivo Javascript do Laravel

O arquivo resources/app.js será o ponto de entrada da aplicação Vue. Então, precisamos importar componentes nativos do Vue e os componentes que nós criamos. Precisaremos também inicializar a aplicação Vue. O arquivo deverá ficar assim:

import { createApp } from 'vue';
import Home from './components/Home.vue';
const app = createApp({});

//register the component
app.component('Home', Home);

//..HTML element to mount the Vue application
app.mount('#app');

require('./bootstrap');

Passo 6: Editar o template Blade para inicializar a aplicação Vue

Abra o arquivos resources/views/welcome.blade.php. Na tag body, vamos adicionar um elemento div com o id “app“, pois no arquivo resources/app.js estamos montando a aplicação Vue num elemento HTML cujo id é “app”. O arquivo deve ficar com a seguinte aparência:

<body>
    {{-- HTML element to mount the Vue application --}}
    <div id="app">
        {{-- the Vue component --}}
        <Home />
    </div>
    {{-- including the app.js file --}}
    <script src="{{ asset('js/app.js') }}"></script>
    
</body>

Passo 7: Compilar os recursos Javascript

Vamos usar os comandos a seguir para compilar os arquivos JS e instalar todas as dependências necessárias.

npm install && npm run dev

Note que esse comando pode lhe notificar para que ele seja executado novamente, pois talvez seja necesário instalar dependências adicinoais. Veja a imagem a seguir:

Mensagem pedindo para que execute novamente os comandos pm install && npm run dev

Após executar o comandos install e rundev novamente, deve ser exibido uma mensagem parecido com essa:

Mensagem de sucesso na compilação dos recursos JS.

Passo 8: testando a aplicação

Agora vamos iniciar o servidor Laravel com o seguinte comando:

php artisan serve

Se tudo correu bem, o browser (http://localhost:8000) deverá exibir a página corretamente. Veja:

Página incial do projeto

📌 ATENÇÃO! Sempre que alterar um arquivo .vue será necessário executar o comando npm run dev para que os arquivos js do projeto sejam compilados novamente.

Enjoy it! 😎👍

Jorge Luís Gregório

Jorge Luís Gregório

Professor e entusiasta de tecnologia, estudioso da cultura NERD e fã de quadrinhos, animes e games. Mais um pai de menino, casado com a mulher mais linda da galáxia e cristão convicto. Gosto de ler ficção científica e discutir tecnologia, filmes, seriados, teologia, filosofia e política. Quer falar sobre esses e diversos outros assuntos? Venha comigo!