Рендеринг одного компонента в Laravel при загрузке страницы?

Ссылка скопирована
1 ответ

Есть сайт на laravel который работает как и большинство в интернете. Сейчас всю шапку сайта хотели переделать на vue т.к. там сложное многоуровневое меню с разлиными подгрузками информации и т.д. Но сеошники сказали что основные компоненты меню должны быть всегда в коде страныци для индексации.

Отсюда вопрос: Можно ли при загрузке страницы отрендерить vue компонент через php? И потом после полной загрузки страницы vue как обычно работало с этой разметкой

Слышал про Inertia, но не изучал пока.

Дополнительно:

Ответы:

Отрендерить на пхп конечно можно https://github.com/delphinpro/vue-ssr-with-php-v8js
Но нужно ли?

Можно рассмотреть такой вариант: вывод базовой разметки меню, а на фронте монтирование в этот див компонента.

<div id="header">   <ul>     <li><a href="#">item</a>     <li><a href="#">item</a>   </ul> </div>

<div id="header"> <ul> <li><a href="#">item</a> <li><a href="#">item</a> </ul> </div>

app.mount('#header')

  • Спасибо
  • Боже, каких только извращений не придумают :)
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Стас DB Ответ

Для рендеринга одного компонента в Laravel при загрузке страницы, вам следует создать компонент и затем использовать его в шаблоне представления.

Во-первых, создайте компонент с помощью команды Artisan:

php artisan make:component ComponentName

php artisan make:component ComponentName

После этого в папке `resources/views/components` появится директория с именем вашего компонента, в которой будут файлы `component-name.blade.php` и `component-name.php`.

В файле `component-name.blade.php` вы можете определить содержимое вашего компонента, например:

<div>
    <p>This is my component</p>
</div>

<div> <p>This is my component</p> </div>

Затем в вашем представлении (например, `welcome.blade.php`), где вы хотите отобразить компонент, используйте директиву `x-component` и укажите имя вашего компонента:

<x-component-name />

<x-component-name />

Теперь, когда вы загрузите страницу, компонент будет рендериться на этой странице.

Не забудьте также зарегистрировать ваш компонент в сервис-провайдере `app\Providers\AppServiceProvider.php` в методе `boot()`:

use Illuminate\Support\Facades\Blade;
 
public function boot()
{
    Blade::component('component-name', ComponentName::class);
}

use Illuminate\Support\Facades\Blade; public function boot() { Blade::component('component-name', ComponentName::class); }

Теперь ваш компонент будет доступен для использования на всех ваших страницах в Laravel.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно