VueX
تتيح لك هذه الإضافة التقاط التغييرات (mutations)/الحالة في VueX وفحصها لاحقًا أثناء إعادة تشغيل تسجيلات الجلسات. وهذا مفيد جدًا لفهم المشكلات وإصلاحها.
التثبيت
Section titled التثبيتnpm i @openreplay/tracker-vuex
الاستخدام
Section titled الاستخدامقم بتهيئة حزمة @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],
});
الخيارات
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 الخاص بنا أو زيارة المنتدى والحصول على المساعدة من مجتمعنا.