Skip to content

Работа с Pinia Stores

Раздел Stores предназначен для просмотра зарегистрированных в приложении Pinia-сторов: имя (идентификатор), число полей state и getters, а после выбора строки — снимок state и getters с возможностью правок и записи обратно в приложение (в поддерживаемых случаях).

Подробнее про редактирование state и getters, а также про избранное по сторам:

Верхняя панель управления

Store, область заголовка

Поиск по сторам

Поле поиска и переключатель Search by работают так же, как и в других вкладках. Типы поиска можно заранее задать в Options для вкладки Stores.

РежимНазначение
Nameфильтр по имени стора (локально в панели)
Keyсовпадение по именам полей в state и getters (поиск на стороне страницы)
Valueсовпадение по значениям в state и getters (также на стороне страницы)

Для Key и Value действует минимальная длина запроса (по умолчанию 2 символа; настраивается в параметрах поиска инспектора).

Частичное и точное совпадение. Если запрос не обёрнут в кавычки, используется подстрока (без учёта регистра). Точное совпадение включается, если весь запрос обёрнут в двойные кавычки "...".

На стороне поиска по содержимому действует ограничение числа результатов, чтобы не перегружать страницу при широком запросе.

Индикаторы состояния

Справа на панели Stores отображаются:

ЭлементНазначение
N или N/MЧисло сторов после фильтра; при непустом поиске через дробь — общее число сторов в последней сводке.
ИзбранноеСовпадения с избранными сторами. Клик открывает Options (раздел избранного Pinia).
ОбновлениеКнопка Refresh, индикатор загрузки и время последней успешной сводки (или текст вида Loading...).

Перед запросом сводки панель проверяет доступность канала связи со страницей; если контекст недоступен, данные не запрашиваются.

Рабочая область

Pinia, полноэкранный режим

Список сторов

Слева отображается таблица сторов. Основные колонки (видимость задаётся в настройках таблицы):

  • Name — отображаемое имя стора (baseId);
  • State — число ключей в state (если нет — прочерк);
  • Getters — число getters (если нет — прочерк).

У строки доступны звезда избранного и контекстное меню. Избранное хранится в настройках инспектора; см. Избранное.

Детализация стора

При выборе строки элемента открывается панель детализации выбранного стора.

Сводная информация

В верхней части панели отображаются:

  • имя стора;
  • число ключей State;
  • число ключей Getters;
  • строка Updated: с меткой времени последнего обновления данных карточки.

Данные стора

Ниже доступны вкладки:

ВкладкаНазначение
Stateснимок реактивного state; поддерживаются просмотр и сохранение изменений
Gettersснимок текущих значений getters в сериализованном виде; поддерживается просмотр и ограниченное редактирование

Показываются только те вкладки, для которых доступны данные.

Данные активной вкладки отображаются в формате JSON — в текстовом или древовидном виде в зависимости от настроек инспектора.

Навигация

  • кнопка ← Назад закрывает детализацию и возвращает к таблице;
  • Esc в режиме редактирования отменяет изменения;
  • Esc вне режима редактирования выполняет возврат к списку.

Элементы управления

ЭлементНазначение
Starдобавить или убрать стор из избранного
Refreshповторно запросить данные выбранного стора с страницы; доступна вне режима Edit
Editперейти в режим редактирования активной вкладки (State или Getters)

Режим редактирования

После включения режима Edit кнопки Refresh и Edit заменяются на Cancel и Save.

До редактированияВ режиме редактирования
RefreshCancel — отмена изменений и выход из режима редактирования
EditSave — применить изменения в приложение

Изменения попадают в приложение только после подтверждения через Save.

Для State используется обновление текущего состояния стора, для Getters — запись поддерживается только в допустимых сценариях; ограничения зависят от реализации конкретного стора.

Звезда избранного в этой панели и в таблице описана на странице Избранное.

Данные карточки соответствуют снимку на момент последнего запроса: внешние изменения в приложении не отражаются автоматически, пока вы не выполните Refresh в карточке или не обновите сводку на верхней панели вкладки Stores.

Ограничения отображения

Ограничения чтения данных

  1. Сводка по всем сторам — лёгкий ответ: для каждого стора передаются идентификатор, имя, счётчики ключей state / getters и метка времени снимка, без полной сериализации значений.
  2. Карточка выбранного стора — отдельный запрос с сериализованными state и getters для отображения и редактирования.

Сериализация state и getters ограничена разумными пределами глубины и размера: циклические структуры, функции и специальные объекты могут быть усечены или представлены иначе, чем в исходном runtime.

Результаты поиска по Key и Value также намеренно ограничены по количеству.

Ограничение объёма хранения

Фиксированного лимита числа сторов в таблице нет: отображаются все сторы, возвращённые сводкой Pinia в типичном сценарии.

Нестандартные регистрации или крайние конфигурации могут отображаться неполно; возможность записи зависит от реализации стора — при ошибке сохранения ориентируйтесь на сообщение интерфейса или консоль.

Принципы работы

Когда начинается сбор данных

Модуль Pinia во внедрённом сценарии подключается после обнаружения Pinia на странице (логика сходна с вкладкой Props: сначала должны быть Vue и активный инспектор).

Если Pinia не установлена или ещё не инициализирована при открытии вкладки Stores, список будет пустым или появится сообщение об ошибке загрузки.

Что попадает в мониторинг

  1. Сводка — только идентификаторы, имена и счётчики полей для таблицы.
  2. Детали одного стора — полный сериализованный state и getters по выбору пользователя.

Так отделяется быстрый список от тяжёлого чтения одного стора.

Как устроен обмен

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

js
// Иллюстрация: запрос сводки — только id стора, имя и счётчики ключей
const response = await bridge.send({ type: 'PINIA_GET_STORES_SUMMARY' })
// response.summary — объект «storeId → { id, baseId, stateKeys, getterKeys, … }»

const detail = await bridge.send({
  type: 'PINIA_GET_STORE_STATE',
  storeId: 'my-store-id',
})
// detail.state, detail.getters — данные для отображения и редактирования

Поиск по ключам и значениям (PINIA_SEARCH) выполняется на странице и возвращает только список идентификаторов подходящих сторов.

См. также

Лицензия GPL-3.0.