Использование Laravel позволяет элегантно создавать API-интерфейсы и идеально интегрировать их с одностраничным приложением Vue (SPA). В этом уроке мы покажем вам, как запускать и запускать маршрутизаторы Vue и серверную часть Laravel для создания SPA. Мы сосредоточимся на всех необходимых нам деталях, а затем в следующем уроке покажем вам, как использовать Laravel в качестве уровня API.
Как работает VueS PAr un:
- Первый запрос поступает на серверный маршрутизатор Laravel
- Laravel Делает Макет СПА-салона
- Использование последующих запросов
история.pushStateAPI-интерфейсы переходят по 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…