- Модели данных описываются классами, в которых можно настроить:
- CRUD-эндпоинты
- Поля модели (с типами, правилами валидации и дефолтными значениями)
- Связи с другими моделями (one-to-one, one-to-many, many-to-many)
- Отображение полей (привязать компоненты и передать пропсы)
- Группировку полей
- Поля показываемые в зависимости от значений в других полях
- Модели хранятся в реактивном Map и имеют:
- CRUD-методы для вставки (создание + сохранения), подгрузки записи/записей
- Методы для получения всех загруженных записей и их-количества
- Query для выборки из загруженных записей по условиям:
- where (and, or и их вложенности) для фильтрации,
- orderBy для сортировки,
- offset, limit и paging для партицирования выборки
- with, withAll для использования связей в выборке
- Записи модели имеют:
- CRUD-методы для сохранения, удаления
- Валидацию по правилам полей (автоматически на сохранении и в ручном режиме по необходимости)
- Последний сохранённый
$state
, статус$isDirty
и метод получение имён dirty полей
- Подключается как vue плагин, модели в компонентах доступны через
this.$models.<modelName>
npm install @evas-js/vue-orm