Чтобы перенести блейд-код из @foreach в Laravel Blade на компонент Vue.js, вам нужно выполнить следующие шаги:
### Шаг 1: Создание компонента Vue.js
1. Создайте новый компонент Vue.js, например, в папке resources/js/components
.
// ExampleComponent.vue <template> <div> <ul> <li v-for="item in items" :key="item.id"> {{ item.name }} </li> </ul> </div> </template> <script> export default { data() { return { items: [] }; }, mounted() { // Вместо axios используйте ваш способ загрузки данных axios.get('/api/items') .then(response => { this.items = response.data; }) .catch(error => { console.error(error); }); } }; </script>
### Шаг 2: Регистрация компонента
2. Зарегистрируйте компонент в файле resources/js/app.js
.
Vue.component('example-component', require('./components/ExampleComponent.vue').default);
### Шаг 3: Добавление роута API
3. Создайте маршрут для обращения к API в файле routes/api.php
.
Route::get('/items', 'ItemController@index');
### Шаг 4: Создание контроллера
4. Создайте контроллер ItemController
и добавьте метод index
.
// ItemController.php namespace AppHttpControllers; use AppModelsItem; class ItemController extends Controller { public function index() { return Item::all(); } }
### Шаг 5: Вызов компонента Vue в Blade
5. Вставьте компонент Vue в вашу Blade-страницу.
<!-- example.blade.php --> @extends('layouts.app') @section('content') <div> <example-component></example-component> </div> @endsection
### Шаг 6: Компиляция ресурсов
6. После внесения изменений в ресурсы, запустите сборку с помощью Laravel Mix.
npm run dev
После выполнения этих шагов, компонент Vue будет загружать данные по API и отображать их при помощи v-for
вместо Blade @foreach
.