Я довольно новичок в symfony и немного опыт в vue. js. После небольшого исследования я не смог найти решение своей проблемы.
У меня следующая проблема:
Я создаю многостраничное приложение с Symfony и vue. js для внешнего интерфейса. Я использую форму поиска в своем шаблоне index.html.twig
, чтобы получить информацию о данном поисковом запросе из API.
Поэтому я использую маршрутизацию с Symfony. При нажатии на кнопку поиска вызывается URL xxx/search?query=test
. Этот URL обрабатывается моим symfony контроллером, который получает данные от API и отображает страницу search-result.html.twig
. Я использую Vue. js в index.html.twig
и хочу также использовать Vue в search-result.html.twig
(и других маршрутах и страницах), но я не совсем уверен, как использовать разные vue экземпляры на разных страницах.
Я надеюсь, что смог правильно описать проблему! Ждем ваших предложений.
ОБНОВЛЕНИЕ:
Это моя текущая инфраструктура:
base. html .twig (все другие страницы наследуются из этого шаблона):
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{% block title %}Welcome!{% endblock %}</title>
{% block stylesheets %}
{{ encore_entry_link_tags('app') }}
{% endblock %}
</head>
<body>
<div id="app">
{% block body %}{% endblock %}
</div>
</body>
{% block javascripts %}
{{ encore_entry_script_tags('app') }}
{% endblock %}
</html>
Вот как я инициализирую свой vue экземпляр:
import Vue from 'vue';
import App from './App.vue';
new Vue({
render: h => h(App)
}).$mount('#app');
Из приложения. vue Затем я отправляю свои различные компоненты.
Проблема в том, что при открытии другого файла ветки я не могу использовать другой макет страницы.