Petite-Vue — это облегчённая версия Vue.js, ориентированная на минимализм и простоту внедрения реактивного поведения. В основе библиотеки лежит реактивная система, позволяющая автоматически отслеживать изменения данных и обновлять DOM без ручного вмешательства.
Ключевой принцип реактивности заключается в том, что данные, связанные с интерфейсом, становятся наблюдаемыми. Любое изменение такого свойства автоматически приводит к перерисовке тех частей интерфейса, которые от него зависят.
В Petite-Vue реактивное состояние создаётся с помощью функции
createApp. Она принимает объект с данными и методами:
const { createApp } = PetiteVue;
createApp({
message: 'Привет, Petite-Vue!',
count: 0,
increment() {
this.count++;
}
}).mount();
Особенности:
this внутри методов ссылается на объект
приложения.message или count
автоматически обновляет привязанный DOM.Petite-Vue использует упрощённый набор директив:
v-text — вывод текста.v-html — вставка HTML.v-show — условное отображение.v-if — условная вставка элемента.v-for — циклический рендеринг коллекций.@event — привязка событий (аналог
v-on).Пример с циклом и условием:
{{ item.name }}
Здесь v-for создаёт реактивные элементы, а
v-if динамически управляет их видимостью. Любое изменение
свойства item.active приведёт к мгновенному обновлению
интерфейса.
Petite-Vue поддерживает вычисляемые свойства, которые автоматически пересчитываются при изменении зависимых данных. Они задаются как функции в объекте приложения:
createApp({
firstName: 'Иван',
lastName: 'Иванов',
get fullName() {
return `${this.firstName} ${this.lastName}`;
}
}).mount();
fullName пересчитывается автоматически, когда изменяется
firstName или lastName. В отличие от методов,
вычисляемые свойства кешируются и пересчитываются
только при необходимости.
Методы приложения могут использоваться для изменения реактивных
данных через this. Привязка событий реализуется через
@:
{{ count }}
Метод increment увеличивает значение count,
и автоматически обновляется.
Petite-Vue отслеживает изменения объектов и массивов. Любые методы
изменения массива, такие как push, pop,
splice, вызывают автоматический ререндер зависимых
компонентов:
createApp({
todos: [{ text: 'Купить хлеб', done: false }],
addTodo(task) {
this.todos.push({ text: task, done: false });
}
}).mount();
Объекты внутри массива также являются реактивными:
this.todos[0].done = true; // автоматически обновляет DOM
Под капотом Petite-Vue использует проксирование объектов. Это позволяет:
Принцип работы:
Petite-Vue автоматически связывает данные с элементами через атрибуты
v-* и интерполяцию {{ }}. Любое изменение
состояния приводит к минимальному и точечному обновлению DOM, что
обеспечивает высокую производительность при небольших приложениях.
Реактивная система позволяет создавать динамические интерфейсы без лишнего кода, концентрируя логику приложения в объекте состояния и его методах.