在vue单页面项目上怎么使用一个函数监听所有组件v-on:click事件

我想在mian.js或者app.js或者其他主文件监听其他组件中的@click事件被触发并且记录下来,记录很容易,问题是怎么去监听是一个问题。完全没思路,有没有大神指导一下(还被规定不能用侵入式编程)

用eventBus,具体资料和应用案例有很多

规定不能用侵入式编程:joy:

让后台给一个1接口,点击按钮的时候,发送一条信息过去,让后台记录下来;带上你点击按钮的id或者关键字。然后让后台再给一个2接口,返回所有他帮你存下来的数据关键字和次数;

步骤应该是:
1,开局获取2接口存下来的数据关键字和次数,用vuex或者本地缓存存起来;
2,点击的时候发送给1接口,后台返回成功之后重新访问2接口,和存起来的数据作对比,看看谁的次数加了1。。

// 在 new Vue 之前定义
const on = Vue.prototype.$on
Vue.prototype.$on = function(event, func) {
  newFunc = function() {
    if ('click' === event) {
      // 你的处理
    }
    func.apply(this, arguments)
  }
  on.call(this, event, newFunc)
}

好像不行,是不是我用错了。报错了