Для вставки кода из "Inertia" в свой проект на "Laravel" в файл "app.js" следуйте следующим шагам:
1. Установите "Inertia" в свой проект. Для этого можно использовать Composer, запустив следующую команду в корневой папке проекта:
composer require inertiajs/inertia-laravel
2. Затем установите "Inertia" на стороне фронтенда, используя NPM:
npm install @inertiajs/inertia
3. Добавьте InertiaServiceProvider
в раздел providers
файла config/app.php
:
'providers' => [ // ... InertiaServiceProvider::class, ],
4. Затем зарегистрируйте маршрут inertia
в файле routes/web.php
:
use IlluminateSupportFacadesRoute; use InertiaInertia; Route::inertia('/app', 'App');
5. Создайте новый файл blade шаблона в папке resources/views
, например app.blade.php
. В этом шаблоне вы будете монтировать ваше приложение "Inertia".
6. Вставьте следующий код в ваш файл app.js
, для определения точки монтирования и указания базового URL:
import { App, plugin } from '@inertiajs/inertia-vue'; import Vue from 'vue'; Vue.use(plugin); const app = document.getElementById('app'); new Vue({ render: (h) => h(App, { props: { initialPage: JSON.parse(app.dataset.page), resolveComponent: (name) => import(`./Pages/${name}`).then((module) => module.default), }, }), }).$mount(app);
7. Теперь, вставьте следующий код в ваш файл шаблона app.blade.php
:
<!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <!-- ... --> </head> <body> <div id="app" data-page="{{ json_encode($page) }}"></div> <script src="{{ mix('js/app.js') }}"></script> </body> </html>
8. Теперь вы можете создать компоненты "Inertia" в папке resources/js/Pages
, которые будут отображать контент страниц. За обновление содержимого страниц и взаимодействие с бэкендом будет отвечать "Inertia".
Теперь ваш проект Laravel должен быть настроен для использования "Inertia"! Вы можете создавать новые страницы, компоненты и взаимодействовать с бэкендом, используя стандартные методы "Laravel". Не забудьте скомпилировать свои фронтенд ресурсы с помощью команды npm run dev
или аналогичной перед тем, как проверять изменения в браузере.