Я работаю над приложением Symfony 3, которое использует Twig для рендеринга. Чтобы сделать код более читабельным и пригодным для повторного использования, мне нужно разделить экран на небольшие части, части, которые можно было бы использовать на других экранах (например, виджет часов). Сначала это кажется простым, я мог бы использовать метод Twig включают, чтобы включить эту часть кода. Проблема в том, что мои часы используют для работы некоторые специфические скрипты CSS и JS.
Как лучше всего создать повторно используемые компоненты, состоящие из HTML, CSS и JS? Спасибо заранее!






В Twig нет концепции или подхода «Компонент», но тем не менее вы можете инкапсулировать код CSS + HTML + JS в один файл и включают как изолированный фрагмент кода:
<style>...</style> {# or use <link href = "..."> #}
<div>...</div>
<script>...<script> {# or use <script src = "..."> #}
Однако, вероятно, Twig не является правильным инструментом для достижения этого, и вам следует взглянуть на какой-нибудь интерфейсный фреймворк (например, VueJS https://vuejs.org/v2/guide/index.html), передавая данные через атрибуты HTML.
Вероятно, вы можете использовать включение передачи данных в определенный частичный компонент и динамически отображать его.
Проверьте это: https://twig.symfony.com/doc/3.x/tags/include.html
Хорошо, я бы предположил, что есть возможность включить HTML и перегрузить блоки стилей и javascripts. Я понимаю вашу идею с Vue.js или другим передним фреймворком, но это не вариант для моего проекта. Спасибо за ваш ответ!