Использование Laravel позволяет элегантно создавать API-интерфейсы и идеально интегрировать их с одностраничным приложением Vue (SPA). В этом уроке мы покажем вам, как запускать и запускать маршрутизаторы Vue и серверную часть Laravel для создания SPA. Мы сосредоточимся на всех необходимых нам деталях, а затем в следующем уроке покажем вам, как использовать Laravel в качестве уровня API.
Как работает VueS PAr un:
- Первый запрос поступает на серверный маршрутизатор Laravel
- Laravel Делает Макет СПА-салона
- Использование последующих запросов
история.pushState
API-интерфейсы переходят по URL-адресам без перезагрузки страниц
Маршрутизаторы Vue могут быть настроены Режим истории или Режим хэширования . по умолчанию Режим хэширования — Хэш URL-адреса используется для имитации полного URL-адреса, поэтому при изменении URL-адреса страница не перезагружается. Режим истории Эта модель в полной мере использует history.pushState
API для завершения перехода по URL-адресу без перезагрузки страницы.
Здесь мы используем шаблоны история , поэтому нам нужно настроить маршрутизацию Laravel, которая соответствует всем возможным URL-адресам, в зависимости от маршрута пользователя в Vue SPA. Например, если пользователь обновит /привет
Маршрутизацию, нам нужно будет сопоставить маршрут и вернуть шаблон приложения Vue SPA. Затем маршрутизатор Vue определяет маршрут и отображает соответствующие компоненты.
устанавливать
Сначала мы создаем новый проект Laravel, а затем устанавливаем пакет NPM маршрутизатора Vue:
laravel new vue-router cd vue-router # Link the project if you use Valet valet link # Install NPM dependencies and add vue-router yarn install yarn add vue-router # or npm install vue-router
Настройка маршрутизатора Vue
Здесь <просмотр маршрутизатора>
Выход верхнего уровня отображает компоненты, соответствующие маршрутизации верхнего уровня. Аналогично, отрисованный компонент также может содержать свою собственную вложенность. <просмотр маршрутизатора>
。
Сначала мы обновим основные файлы JavaScript resources/assets/js/app.js
И настройте маршрутизатор Vue. Заменить следующим app.js
Содержание документа:
import Vue from 'vue' Import VueRouter from'vue-router'// Import and install VueRouter plug-ins Vue.use(VueRouter) Import App from'. / views / App'// Components as App's Outermost Application Component Import Hello from'. / views / Hello'// Import custom Hello components Import Home from'. / views / Home'// Import custom Home components // Construct a new instance of VueRouter with configuration objects const router = new VueRouter({ mode: 'history', routes: [ { path: '/', name: 'home', component: Home }, { path: '/hello', name: 'hello', component: Hello, }, ], }); const app = new Vue({ el: '#app', components: { App }, router, });
Затем нам нужно создать несколько файлов, но сначала мы представим следующее. app.js
:
- Мы импортируем и устанавливаем
Маршрутизатор Vue
Подключаемый модульVue.use()
Мы импортировали три компонента Vue:
- Действуйте как
Приложение
Компонент самого внешнего компонента приложения, - Один
Привет
Сопоставление с компонентами/привет
- Один
Главная
Отображение на компоненты/
главная
- Действуйте как
- Давайте построим
Маршрутизатор Vue
Новые экземпляры с объектами конфигурации - Мы
Приложение
Передаем компонентыкомпонентам
Атрибутам в конструкторе представления, чтобы Vue знал о компоненте - Мы будем
маршрутизатор
Постоянное внедрение в новое приложение Vue для доступаэтот.$маршрутизатор
иэтот.$маршрут
это VueRouter
Конструктор берет маршрут, путь, который мы определяем, имя (например, именованный маршрут Laravel) и сопоставляет его с массивом компонентов пути.
Мне нравится перемещать определение маршрутизации в отдельный модуль маршрутизации, который я импортировал, но для простоты мы определим маршрутизацию в главном файле приложения.
Чтобы Laravel mix успешно работал, нам нужно определить три компонента:
mkdir resources/assets/js/views touch resources/assets/js/views/App.vue touch resources/assets/js/views/Home.vue touch resources/assets/js/views/Hello.vue
Во-первых, файлы App.vue
являются самым внешним элементом контейнера нашего приложения. В этом компоненте мы будем использовать метки маршрутизатора Vue, определяющие названия приложений и некоторую навигацию:
Vue Router Demo App
Home |Hello World
Мы Подаем заявку
Наиболее важными тегами в компоненте являются <просмотр маршрутизатора> маршрутизатора>
Метка, наш маршрутизатор представит данный компонент, соответствующий пути (то есть Home
или Привет
). маршрутизатора>
Следующий компонент, который нам нужно определить, находится в ресурсы/активы/js/представления/Home.vue
:
This is the homepage
Наконец, мы определяем Привет
Компоненты, расположенные ниже ресурсы/активы/js/представления/Привет.vue
:
Hello World!
Мне нравится отделять мои повторно используемые компоненты от компонентов, специфичных для представления, путем организации представлений в ресурсы/активы/js/представления
Папки и мои действительно повторно используемые компоненты ресурсы/активы/js/компоненты
. Это мое соглашение, и я нахожу, что оно хорошо работает, поэтому я могу легко разделить, какие компоненты можно использовать повторно, а какие-для конкретного представления.
Что касается интерфейса, у нас есть все необходимое для запуска приложений Vue! Затем нам нужно определить внутреннюю маршрутизацию и шаблоны на стороне сервера.
На стороне сервера
Мы используем платформы приложений, такие как Laravel и Vue SPA, чтобы создавать API на стороне сервера для использования наших приложений. Мы также можем использовать Blade для визуализации нашего приложения и предоставления конфигурации среды с помощью глобальных объектов JavaScript, что мне кажется удобным.
В этом уроке мы не собираемся создавать API, но мы продолжим. Эта статья посвящена подключению маршрутизаторов Vue.
Первое, что мы сделаем на стороне сервера, – это определим маршрутизацию. откройте файл маршрутизаторы/web.
php
и замените путь приветствия следующим:
[email protected]')->where('any', '.*');
Мы определяем всемогущий маршрут. Контроллер СПА
Это означает, что любой сетевой маршрут будет сопоставлен с нашим СПА-салоном. Если мы этого не сделаем, и пользователь сделает запрос /привет
Laravel ответит 404.
Далее нам нужно создать Spa-контроллер
И определите представления:
php artisan make:controller SpaController
открыть Спа-контроллер
И введите следующее:
Наконец, введите следующее resources/views/spa.blade.php
:
Vue SPA Demo
Мы определили #приложение
Содержит Приложение
Vue будет отображать необходимые элементы компонента и отображать соответствующий компонент на основе URL.
Запуск приложения
Этот фундамент используется для создания SPA с маршрутизаторами Vue и Vue. Нам нужно построить или JavaScript, чтобы протестировать его:
yarn watch # or npm run watch
Если вы загружаете приложение в браузере, вы должны увидеть следующее:
Первоначальный адрес: https://laravel-news.com/usin…