如果使用Redux-Beacon,在React / Redux应用程序中跟踪内部链接点击分析的最佳方法是什么?
通常,内部链接单击会触发路由器位置更改(不会触发其他任何redux操作)。但是“ LOCATION_CHANGE”实际上是一个 pageView 。
可以在history.push('...')
之前调度事件吗?喜欢:
dispatch({ type: VIEW_BLOG_POST, postId });
.....
history.push(`/${postId}`);
...
没有真正改变状态,只是为了通过redux-beacon中间件捕获事件?
... 外部链接点击也如何?我需要管理这些不同的东西吗? (我想避免混合跟踪实现)
答案 0 :(得分:2)
可以在history.push('...')之前调度事件吗?
是的,那完全可以。您要做的就是将VIEW_BLOG_POST
映射到新的事件定义。该动作不必以任何方式更改状态。它将通过减速器,减速器将全部返回对先前状态的引用。如果您使用react-redux,则对性能的影响几乎为零。假设您正在GA中将此事件作为事件进行跟踪,则看起来像这样:
import { trackEvent } from '@redux-beacon/google-analytics';
const trackBlogPostClick = trackEvent((action, prevState, nextState) => {
return {
category: /* fill me in */,
action: /* fill me in */,
label: /* (optional) */,
value: /* (optional) */,
};
}, /* (optional) tracker names array or tracker name string */ );
// And wherever your events map is:
const eventsMap = {
VIEW_BLOG_POST: trackBlogPostClick,
}
没有真正改变状态,只是为了通过redux-beacon中间件捕获事件?
外部链接点击也如何?我需要管理这些不同的东西吗? (我想避免混合跟踪实现)
这在很大程度上取决于您要如何在Google Analytics(分析)中跟踪这些内容。但是从redux-beacon的角度来看,以相同的方式对待它们并没有错。