Динамическая загрузка компонентов Vue.js

О проекте

Данный проект представляет собой набор трех приложений:

  • Бэкенд
  • Фронтенд
  • Админская страница

Бэкенд

Бэкенд представляет собой простое приложение на Node.js с использованием фреймворка Express. Для хранения данных используются файлы формата JSON.

API бэкенда состоит из двух эндпоинтов:

  1. /api/articles (GET) - возвращает список статей.
  2. /api/template (GET, PUT) - используется для получения и изменения шаблона Vue.

Фронтенд

Фронтенд представляет собой приложение на Vue.js 3, собираемое с помощью Vite. В нем отображается компонент, который динамически загружает шаблон, полученный с бэкенда.

Админская страница

Админская страница также является приложением на Vue.js 3, собираемым с помощью Vite. На этой странице отображается предварительный просмотр динамического шаблона, а также форма для его редактирования.

Реализация

Проект позволяет создать и отображать динамические компоненты Vue.js с возможностью редактирования их шаблонов и стилей через API. Каждый компонент можно встроить как на административную страницу, так и на клиентскую страницу.

Особенности:

  • Реализован простой бэкенд на Node.js с использованием Express.
  • Фронтенд собирается с помощью Vite и использует Vue.js 3.
  • Компоненты Vue.js динамически загружают шаблон и стили из API.
  • При отсутствии данных в API используются шаблон и стили по умолчанию.
  • Реактивность компонентов сохраняется.

Запуск:

  • Проект запускается в Docker с помощью команды git clone, docker compose up.

Ручное изменение шаблона

Для того что бы поменять шаблон без использования API, нужно перейти в папку backend/database/template/database.json и изменить содержимое переменной: template.