由于单页面开发,因此统计代码的封装和考虑点是咱们须要着手设计的(好比维护性)。html
cnzz提供的js注入有四种方式,以下vue
我这边用的是第一种,为了方便定位问题,采起问答式来写这篇水文。api
最普通的就是咱们直接去操做html的head,而后手动复制那么一段进去;app
如果咱们要考虑下维护性,基于 vue cli 3
构建项目的小伙伴能够用脚手架封装的特性来抽离;dom
就是 .env
文件 + 模板插值
来实现; 前者是环境配置文件,后者是模板语言。ide
具体能够官方的文档:函数
VUE_APP
开头才能生效接着看我业务代码的实现,来加深你的了解。ui
由于用的文字版,因此会植入一个 a
标签,看了下dom结构,就很好处理了,
咱们监听事件 DOMContentLoaded
(页面结构解析完毕【和load差异很大】),顺利拿到dom而后隐藏掉;设计
埋点行为触发主要用的是CNZZ这个事件(trackevent)code
对于能够重复利用的东西,抽离为函数是最佳姿式,具体代码以下(结合我业务的),
为何要判断 _czc
,是那个js注入的文件有时候不必定加载成功,这时候就没有这个东东了。
category
咱们这边主要用来做为分享的 app
来源,默认值因此从工程的配置文件读取(统一维护)
其余一些行为点击的,具体在对应的函数执行便可,这样单页面的埋点触发基本是ok的。
具体业务具体分析,如果行为封装要分离的更完全一些,那一些业务代码的设计也确定要调整。