Ограничения и компромиссы

Petite-Vue основана на идеях Vue, но ориентирована на минималистичный сценарий использования. Такое стремление к компактности приводит к заметным ограничениям, которые оказывают влияние на архитектуру фронтенда и способы организации логики.

Минимальный набор API

Размер библиотеки держится в пределах нескольких килобайт, поэтому отсутствует значительная часть высокоуровневого функционала: нет маршрутизации, нет полноценной системы компонентов, нет plug-in API. В итоге логика распределяется вокруг простых реактивных объектов и атрибутов на уровне DOM.

Ключевой эффект: приложение принимает форму «поверх HTML», а не абстракции поверх виртуального дерева компонентов.

Прямая работа с DOM

В отличие от Vue 3, где виртуальный DOM обеспечивает прослойку между логикой и разметкой, Petite-Vue обновляет DOM напрямую. Такой подход увеличивает прозрачность, но ограничивает оптимизации, связанные с диффингом и батчингом обновлений.

Выигрыш: снижение накладных расходов и отсутствие сложных механизмов рендеринга. Компромисс: труднее масштабировать реактивные взаимодействия, особенно при большом количестве элементов и частых обновлениях.

Отсутствие полноценной композиции компонентов

В Petite-Vue присутствует лишь идея мини-компонентов через v-scope, но без богатой системы свойств, событий и жизненных циклов. Это не приближается к полноценной компонентной модели в духе Vue или React.

Последствия: структурирование логики сводится к сегментам кода, привязанным к DOM-узлам, а повторное использование вынуждает дублировать шаблоны или выносить всё в серверный рендеринг.

Ограниченные возможности реактивности

Реактивность Petite-Vue проста: объекты оборачиваются в прокси, вычисления происходят лениво, зависимости вычисляются автоматически. Но отсутствуют такие конструкции, как computed, watch с детальной конфигурацией, или тонкая настройка трекинга.

Плюс: низкая когнитивная нагрузка и отсутствие сложных соглашений. Минус: сложнее выражать производные состояния и контролировать сторонние эффекты.

Работа в пределах одного HTML-контекста

Petite-Vue часто применяется как «усилитель» существующей HTML-страницы. Она закрывает потребность в интерактивности без перестройки всего приложения.

Ограничение: невозможность построения SPA-логики без дополнительных библиотек. Навигация, состояние между страницами и сложные иерархии требуют внешних инструментов.

Баланс между простотой и масштабируемостью

Стратегия Petite-Vue направлена на сценарии, где важны скорость внедрения и минимальные зависимости. Но при росте требований к интерактивности приходится решать, продолжать ли расширять код вокруг v-scope, либо перейти на полноценный фреймворк.

Компромисс: сила Petite-Vue — в малых интерфейсах, прототипах, микровиджетах, интеграции со статическими сайтами и серверными движками. Слабое место — проекты, которые со временем требуют богатой компонентной модели и согласованного управления состоянием.

Отказ от магии и инфраструктуры

Весь стек Petite-Vue работает без сборщиков, транспайлеров и виртуальной машины. Это делает его совместимым с простыми средами, включая CMS и статические шаблоны.

Компромисс: отсутствие поддержки современных схем оптимизации, SSR, код-сплиттинга и типизации. Для крупных проектов преимущества сборки оказываются критичнее, чем компактность.

Ограниченная экосистема

Экосистема Petite-Vue не сопоставима с Vue или React: отсутствуют зрелые наборы компонентов, пакеты для сложных UI-паттернов, отладочные инструменты и шаблоны архитектуры.

Последствие: повышается роль самодельных решений, что может замедлять развитие и усложнять поддержку.

Итоговый баланс идей

Petite-Vue выбирает минимализм как основной принцип. Этот подход предпочтителен там, где важны низкий порог внедрения, читаемость кода и зависимость от исходного HTML. Цена такого выбора — отказ от масштабных абстракций и перераспределение ответственности на разработчика и окружение.