我们的任务是将一些GTM跟踪添加到复杂的骨干应用程序中,并思考我们可以采用的各种方式。
为了避免整个应用程序中特定于实现的逻辑,我们开发了一个小型库,允许我们将参数对象传递给它,它将处理跟踪对象的构造并将其推送到dataLayer。我们的想法是,如果将来我们的客户希望更改跟踪提供商,我们只需要更换库。
问题是如何处理这个问题。我的同事和我都提出了一个可能的解决方案:
倾听并回应路由器发生的事件。
路由器侦听当前视图上的跟踪事件并调用跟踪库。 组件触发事件(再次通过更多事件)传递到路由器。
优点:
缺点:
直接从启动跟踪的组件调用库
组件导入对库的引用,当发生需要跟踪的事件时,组件直接调用跟踪库
优点:
缺点:
我们应该注意哪些其他方法可以解决这个问题?我们考虑过全球事件系统(如果可能的话?)