monitor-ztz-前端数据埋点 SDK

一、为什么需要此功能:

        最近在做项目时,需求记录用户的点击量,就想到了前端埋点,在GitHub上找到这个开源项目推荐给大家。此项目支持✔️ PV/UV 统计 ✔️ 自定义埋点上报 ✔️ 错误捕获 ✔️ 性能指标上报。

二、实现 

github | npm 文档

 方式一:推荐✨✨✨✨✨

npm i monitor-ztz

 方式二:可以clone该项目后,根据自己的需求做适当调整,或直接npm run build生成dist包,在项目中引入index.js

三、主要代码

        因为我需要额外的传递一些参数,所以有对源代码进行修改,便采取了第二种方式。

在main.js中引入打包生成的monitor-ztz.js

import Monitor, { reportTracker, setUserId } from "@/utils/monitor-ztz"

const monitor = new Monitor({
  appId: "你的项目id,用于区分项目",
  requestUrl: "上传地址",
  routerTracker: true, //是否开启pv/uv统计,注意:没有通过setUserId手动设置过只会统计pv
  domTracker: true, //是否开启鼠标事件比如click dbclick contextmenu的打点上报
  jsError: true, //是否开启错误捕获上报
  performanceTracker: true //是否开启性能指标上报
})

        setUserId的时机可在用户登录时获取到用户信息后调用 

四、点击事件上报方式

        我项目中需要记录菜单节点的点击量,且使用Element Plus组件支持透传,具体实现根据自己项目需求实现

<el-menu-item :tracker-key="item.meta.title">{{item.meta.title}}</el-menu-item>

        同时SDK提供了手动上报的方式,我这里用来在用户刷新或关闭浏览器时以及切换选项卡时手动上报

const handleBeforeunload = ()=>{
    reportTracker(
        {
          stayTime: monitor.calcStayTime() / 1000,
          currentPage: window.location.href,
          prePage: window.location.href
        },
        "UV"
      )
}
window.addEventListener("beforeunload", handleBeforeunload);

document.addEventListener('visibilitychange', () => { // 浏览器tab切换监听事件
  if (document.visibilityState === 'visible') { // 状态判断:显示(切换到当前页面)
    monitor.pageStartTime = monitor.getTime()
  } else if (document.visibilityState === 'hidden') { // 状态判断:隐藏(离开当前页面)
    beforeunloadHandler()
  }
})

另外监控错误警告和页面性能的功能大家可以自己尝试使用

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
引用\[1\]提到了一个用于在浏览器上展示BIM模型的Vue插件,它是基于Vue和Autodesk Forge Viewer开发的。该插件支持单模型加载和多模型顺序加载,并且还在不断扩展其他特性。所以,如果你想在Vue项目中使用Autodesk Forge Viewer组件,你可以通过引入这个插件来实现。引用\[2\]中提到,你可以在Autodesk.Viewing.Initializer()回调中绑定Viewer的事件,比如绑定选中业务。你只需要一句话就能完成绑定。另外,引用\[3\]中提到,你还需要安装@types/forge-apis这个npm包,并在项目模块中引用客户端SDK。你可以参考官方实例库中的示例代码来使用Autodesk Forge Viewer组件。 #### 引用[.reference_title] - *1* [一个用于在浏览器上展示bim模型的vue插件](https://blog.csdn.net/qq_15390381/article/details/104432240)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Forge入门整理](https://blog.csdn.net/ztz87/article/details/107709556)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Autodesk Forge Viewer与Forge API Node.js客户端SDK的TypeScript声明文件发布!](https://blog.csdn.net/weixin_33862041/article/details/88606664)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值