Backbone:事件与直接调用vs [您的解决方案]用于通用库使用

时间:2017-09-25 09:59:14

标签: javascript events backbone.js

我们的任务是将一些GTM跟踪添加到复杂的骨干应用程序中,并思考我们可以采用的各种方式。

为了避免整个应用程序中特定于实现的逻辑,我们开发了一个小型库,允许我们将参数对象传递给它,它将处理跟踪对象的构造并将其推送到dataLayer。我们的想法是,如果将来我们的客户希望更改跟踪提供商,我们只需要更换库。

问题是如何处理这个问题。我的同事和我都提出了一个可能的解决方案:

倾听并回应路由器发生的事件。

路由器侦听当前视图上的跟踪事件并调用跟踪库。 组件触发事件(再次通过更多事件)传递到路由器。

优点:

  • 保持组件分离(如果组件在未来的项目中重复使用,没有跟踪,我们不需要进行任何更改,事件将默默触发并被忽略)
  • 如果将来更改跟踪提供商,我们可以在路由器中换出库及其调用

缺点:

  • 由于深层嵌套的组件需要启动跟踪,因此事件将成为PITA并且非常混乱以便设置并实际遵循正在进行的操作

直接从启动跟踪的组件调用库

组件导入对库的引用,当发生需要跟踪的事件时,组件直接调用跟踪库

优点:

  • 更容易设置并按照
  • 进行操作

缺点:

  • 组件具有额外的依赖性,使它们更加耦合。

我们应该注意哪些其他方法可以解决这个问题?我们考虑过全球事件系统(如果可能的话?)

0 个答案:

没有答案