Pinia
Этот плагин позволяет захватывать мутации/состояние Pinia и просматривать их позже при воспроизведении записей сессий. Это очень полезно для понимания и устранения проблем.
Установка
Section titled Установкаnpm i @openreplay/tracker-vuex
Использование
Section titled ИспользованиеИнициализируйте пакет @openreplay/tracker как обычно и загрузите в него плагин. Вызовите плагин, чтобы задать имя хранилища; это вернёт именованный экземпляр трекера хранилища, который вы можете вызвать, передав ваш экземпляр хранилища в качестве аргумента, чтобы включить отслеживание этого хранилища.
Если ваш веб-сайт — одностраничное приложение (SPA)
Section titled Если ваш веб-сайт — одностраничное приложение (SPA)import OpenReplay from '@openreplay/tracker';
import trackerVuex from '@openreplay/tracker-vuex';
Если ваше веб-приложение рендерится на стороне сервера (SSR)
Section titled Если ваше веб-приложение рендерится на стороне сервера (SSR)import OpenReplay from '@openreplay/tracker/cjs';
import trackerVuex from '@openreplay/tracker-vuex/cjs';
Отслеживание хранилища Pinia
Section titled Отслеживание хранилища Pinia
//...
const tracker = new OpenReplay({
projectKey: PROJECT_KEY
// ... options
});
// ...
const examplePiniaStore = useExamplePiniaStore()
const vuexPlugin = tracker.use(trackerVuex(<options>)) // check list of available options below
const piniaStorePlugin = vuexPlugin('STORE NAME') // add a name to your store,
// optional (will be randomly generated otherwise)
piniaStorePlugin(examplePiniaStore) // start tracking state updates
// now you can use examplePiniaStore as usual pinia store (destructure values or return it as a whole etc)
Опции
Section titled ОпцииВы можете настроить поведение плагина с помощью опций для очистки ваших данных. Они аналогичны опциям стандартного плагина createLogger.
trackerVuex({
filter (mutation, state) {
// returns `true` if a mutation should be logged
// `mutation` is a `{ type, payload }`
return mutation.type !== "aBlacklistedMutation";
},
transformer (state) {
// transforms the state before logging it.
// for example return only a specific sub-tree
return state.subTree;
},
mutationTransformer (mutation) {
// mutations are logged in the format of `{ type, payload }`
// we can format it any way we want.
return mutation.type;
},
})
Руководство
Section titled РуководствоЕсли вы ищете практический пример того, как использовать этот плагин для захвата изменений состояния в ваших записях сессий, ознакомьтесь с нашим подробным руководством здесь.
Есть вопросы?
Section titled Есть вопросы?Возникли трудности с настройкой этого плагина? Присоединяйтесь к нашему Slack или загляните на наш Форум и получите помощь от нашего сообщества.