Petite-Vue представляет собой легковесную реактивную библиотеку, ориентированную на упрощённое связывание данных и DOM без необходимости полной структуры фреймворка Vue. Основой работы являются примитивы и объекты, которые позволяют создавать реактивные состояния и управлять их отображением.
В Petite-Vue примитивы — это простые значения:
строки, числа, булевы значения. Они могут быть привязаны к DOM через
атрибуты v-text, v-html, v-model
и подобные.
<div v-scope="{ count: 0 }">
<button @click="count++">Увеличить</button>
<p>Счётчик: {{ count }}</p>
</div>
Особенности работы с примитивами:
v-scope создаются реактивными без
необходимости использования специальных функций.const scope = {
message: 'Привет, Petite-Vue'
};
const { message } = scope; // message остаётся реактивным
Объекты в Petite-Vue могут содержать как примитивные свойства, так и
вложенные объекты или массивы. Любое свойство объекта автоматически
становится реактивным при объявлении внутри v-scope.
<div v-scope="{ user: { name: 'Иван', age: 30 } }">
<p>Имя: {{ user.name }}</p>
<p>Возраст: {{ user.age }}</p>
<button @click="user.age++">Добавить год</button>
</div>
Ключевые моменты:
user.address.city = 'Москва' будет
отслеживаться без дополнительных действий.Vue.set или объявления свойства
заранее, чтобы оно стало реактивным.Массивы в Petite-Vue полностью реактивны и поддерживают большинство
стандартных методов JavaScript, таких как push,
pop, splice, filter,
map. Любое изменение массива обновляет DOM при
использовании директив v-for.
<div v-scope="{ items: ['Яблоко', 'Банан'] }">
<ul>
<li v-for="item in items">{{ item }}</li>
</ul>
<button @click="items.push('Апельсин')">Добавить фрукт</button>
</div>
Особенности:
splice позволяет изменять массив с сохранением
реактивности.filter) требует присвоения результата обратно в реактивное
свойство: items = items.filter(i => i !== 'Банан').tasks = [{ name: 'Задача 1', done: false }].Petite-Vue поддерживает вычисляемые свойства через
использование функций внутри v-scope. Это позволяет
автоматически обновлять данные при изменении зависимостей.
<div v-scope="{ a: 5, b: 10, sum() { return this.a + this.b } }">
<p>Сумма: {{ sum() }}</p>
<button @click="a++">Увеличить a</button>
</div>
Особенности вычисляемых свойств:
v-scope получают доступ к
this, ссылаясь на текущий объект данных.Petite-Vue предлагает несколько способов связывания:
{{ variable }}
или v-text="variable".v-bind:class,
v-bind:style, :disabled="isDisabled".@click, @input,
@change для привязки функций к изменениям состояния.Примитивы подходят для простых значений, объектов и массивов — для структурированных данных, которые могут изменяться динамически.
Объекты и массивы в Petite-Vue обладают глубокой реактивностью:
<div v-scope="{ user: { profile: { name: 'Анна' } } }">
<p>{{ user.profile.name }}</p>
<button @click="user.profile.name = 'Мария'">Изменить имя</button>
</div>
items[2] = 'Груша', не всегда отслеживается корректно —
лучше использовать методы массива.Эффективное использование примитивов и объектов в Petite-Vue позволяет строить интерактивные интерфейсы с минимальным количеством кода, сохраняя реактивность и предсказуемость поведения данных.