Найти тему

Как установить Vue 3 в Laravel 10 + Vite

Оглавление

В этой статье вы узнаете как установить Vue 3 в Laravel 10 + Vite и как использовать его на примере простого приложения. Предполагается что вы уже умеете настраивать окружение для запуска проектов Laravel.

К концу статьи в сможете создать приложение Vue 3 Laravel 10 с vite. Так же узнаете как создать vue3 компонент и подключить его к blade шаблону laravel 10.

Для установки необходимо выполнить следующие шаги:

  1. Установить приложение laravel 10
  2. Установить NPM.
  3. Установить Vue 3.
  4. Добавляем Vue в vite.config.js
  5. Устанавливаем laravel/breeze
  6. Создаём приложение Vue 3
  7. Создаем компонент Vue 3
  8. Подключаем Компонент Vue 3 в файле Laravel blade.
  9. Собираем приложение

1. Установить приложение laravel 10

composer create-project laravel/laravel vue3app

2. Установить NPM

cd vue3app

npm install

3. Установить Vue 3

npm i @vitejs/plugin-vue

4. Добавляем Vue в vite.config.js

В Laravel 10 больше нет webpack.mix.js в корневой директории, а на его месте появился vite.config.js.

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

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

5. Устанавливаем require laravel/breeze

Laravel Breeze — это минимальная и простая реализация всех функций аутентификации Laravel , включая вход в систему, регистрацию, сброс пароля, проверку электронной почты и подтверждение пароля. Кроме того, Breeze включает простую страницу «профиля», где пользователь может обновить свое имя, адрес электронной почты и пароль.

Слой представления Laravel Breeze по умолчанию состоит из простых шаблонов Blade , стилизованных с помощью Tailwind CSS .

composer require laravel/breeze --dev

php artisan breeze:install

Which Breeze stack would you like to install?
› ● Blade
○ React with Inertia
○ Vue with Inertia
○ API only

php artisan migrate

npm install

npm run dev

6. Создаем приложение Vue 3

В resources/js/app.js создадим экземпляр vue 3. Добавляем следующий код:

import { createApp } from 'vue/dist/vue.esm-bundler';
import HelloVue from './components/HelloVue.vue';

const app = createApp({
components: {
'hello-vue' : HelloVue,
}
});

app.mount('#app');

7. Создаем компонент Vue 3

Для этого создадим в каталоге ./resources/js/ каталог Components, а в нем файл HelloVue.vue. Код в файле:

<template>
<h1>Hello Vue!</h1>
</template>

<script>
export default {
name: "HelloVue"
}
</script>
<style scoped>
</style>

8. Подключаем Компонент Vue 3 в файле Laravel blade

Так как у нас установлен Laravel Breeze мы имеем начальный набор шаблонов Blade. В каталоге ./resources/views/layouts/ находим файл app.blade.php добавляем в него в секцию <HEAD> директиву @vite(['resources/css/app.css', 'resources/js/app.js']).

Директива @vite автоматически обнаружит сервер разработки Vite и внедрит клиент Vite. В режиме сборки директива загрузит ваши скомпилированные активы, включая любой импортированный CSS.

<head>
@vite(['resources/css/app.css', 'resources/js/app.js'])
</head>

Отображать компонент будем после авторизации на странице Dashboard в каталоге ./resources/views/ файл dashboard.blade.php

x-app-layout>
<x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
{{ __('Dashboard') }}
</h2>
</x-slot>

<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white overflow-hidden shadow-sm sm:rounded-lg">
<div class="p-6 text-gray-900">
<div id="app">
<hello-vue></hello-vue>
</div>

</div>
</div>
</div>
</div>
</x-app-layout>

9. Соберем приложение

npm run dev

Авторизуемся в нашем Laravel приложении попадаем на страницу Dashboard видим наше Vue 3 приложение:

-2