VueX

Плагин VueX для OpenReplay.

VueX

Этот плагин позволяет захватывать мутации/состояние VueX и просматривать их позже при воспроизведении записей сессий. Это очень полезно для понимания и устранения проблем.

npm i @openreplay/tracker-vuex

Инициализируйте пакет @openreplay/tracker как обычно и загрузите в него плагин. Затем поместите сгенерированный плагин в поле plugins вашего store.

Если ваш сайт является одностраничным приложением (SPA)

Section titled Если ваш сайт является одностраничным приложением (SPA)
import Vuex from 'vuex'
import OpenReplay from '@openreplay/tracker';
import trackerVuex from '@openreplay/tracker-vuex';
//...
const tracker = new OpenReplay({
  projectKey: PROJECT_KEY,
  // ... options 
});

Если ваше веб-приложение рендерится на стороне сервера (SSR)

Section titled Если ваше веб-приложение рендерится на стороне сервера (SSR)

Следуйте приведённому ниже примеру, если ваше приложение использует SSR. Убедитесь, что tracker.start() вызывается после запуска приложения (в useEffect или componentDidMount). Обратитесь к разделу Устранение неполадок, если возникнут ошибки с SSR.

import Vuex from 'vuex'
import OpenReplay from '@openreplay/tracker/cjs';
import trackerVuex from '@openreplay/tracker-vuex/cjs';
//...
const tracker = new OpenReplay({
  projectKey: PROJECT_KEY,
  // ... options
});

С версией tracker-vuex выше 4.0.0

Section titled С версией tracker-vuex выше 4.0.0
// check list of available options below
const vuexPlugin = tracker.use(trackerVuex(<options>)); 

// add a name to your store, optional (will be randomly generated otherwise)
const storeTracker = vuexPlugin('STORE NAME') 

const store = createStore({
  state,
  mutations,
  plugins: [storeTracker]
})

С версией tracker-vuex ниже 3.0.0

Section titled С версией tracker-vuex ниже 3.0.0
// check list of available options below
const vuexPlugin = tracker.use(trackerVuex(<options>));  

tracker.start();

const store = new Vuex.Store({
  //...
  plugins: [vuexPlugin],
});

Вы можете настроить поведение плагина с помощью опций для очистки ваших данных. Они аналогичны опциям стандартного плагина 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;
  },
})

Если вы ищете практический пример того, как использовать этот плагин для захвата изменений состояния в записях сессий, ознакомьтесь с нашим подробным руководством здесь.

Возникли трудности с настройкой этого плагина? Присоединяйтесь к нашему Slack или загляните на наш Форум и получите помощь от нашего сообщества.