艺灵设计

全部文章
×

vue-cli3项目中安装百度统计代码只能统计首页数据?看这一篇就够了!

作者:艺灵设计 - 来源:http://www.yilingsj.com - 发布时间:2020-03-22 19:54:20 - 阅: - 评:0 - 积分:0

摘要:传统项目是多页面的,我们只需要把百度统计代码放到公共头部或尾部,由于页面跳转会刷新页面,所以可以正确的统计到数据。但使用vue-cli3等框架开发的项目多是单页应用的,全局只有一个index.html入口,此时直接把百度统计代码放index.html页面中是无法正确统计数据的。因为页面跳转经过路由且不会刷新页面,从用户体验上来说,相对较好但对统计数据来说永远只能统计到首页数据,好尴尬啊~。不过,我们可以在百度后台开启单页应用数据统计......

一、起因

最近用vue/cli3脚手架搭建了一个简单的官网项目,由于需要统计访客信息,所以网站接入了 百度统计的代码。但奇怪的事情发生了,只能统计到首页数据!!!

二、为何只能统计到首页数据?

2.1、vue/cli3 单页面的原因

与传统项目对比,vue/cli3脚手架搭建的项目最大的区别就是:只有一个入口index.html页面!!!由于@海明加百度统计代码是直接加到了/public/index.html页面中,所以统计不到其他页面数据就很好理解了。如图:百度统计代码加到index.html页面中时只能统计到首页的数据百度统计代码加到index.html页面中时只能统计到首页的数据

那怎么办呢?目前来看,搜索是最佳选择。

三、亲践3种方案

3.1、法一(有效):index.html + 全局前置守卫中设置_trackPageview

大致思路:index.html页面中正常放入百度统计代码,然后在路由跳转前进行拦截,动态设置_trackPageview经测试,此种方法确实有效!

参考文章:
vue项目中加入百度统计-20190621-亲测有效

测试效果如图:方法一已经能统计到数据了方法一现在已经能统计到数据了相关代码如下:

  1. <script>
  2.   var _hmt = _hmt || [];
  3.   (function () {
  4.     var hm = document.createElement("script");
  5.     hm.src = " 在这里填写你的百度统计链接 ";
  6.     var s = document.getElementsByTagName("script")[0];
  7.     s.parentNode.insertBefore(hm, s);
  8.   })();
  9. </script>
  1. router.beforeEach((to, from, next) => { /* 监听全局前置守卫,文档:https://router.vuejs.org/zh/guide/advanced/navigation-guards.html#全局前置守卫 */
  2.   if (to.path) { /* 即将要进入的目标 路由对象 */
  3.     if (_hmt) { /* 如果有全局的_hmt */
  4.       _hmt.push(['_trackPageview', '/#' + to.fullPath]); /* 发送要进入页面的完整url的PV统计请求,文档地址:https://tongji.baidu.com/web/help/article?id=235&type=0&from_query=trackPageview&index=0 */
  5.       console.log('to=', to, ';_hmt=', _hmt) /* 日志信息,页面跳转时控制台可查看,发布时请删除此行日志 */
  6.     }
  7.   }
  8.   next() /* 进行管道中的下一个钩子。必须存在,否则页面无法正常跳转! */
  9. })

代码改动如图:方法一:index配合路由前置守卫

3.2、法二(半有效):全局后置钩子

参考文章:
vue 百度统计 在main.js 里添加全局的router.afterEach后创建了script标签后在浏览器里看不到

相关代码如下:

  1. router.afterEach(() => { /* 监听全局后置钩子,文档:https://router.vuejs.org/zh/guide/advanced/navigation-guards.html#全局后置钩子 */
  2.   setTimeout(() => {
  3.     var _hmt = _hmt || [];
  4.     (function () {
  5.       document.getElementById('baidu_tj') && document.getElementById('baidu_tj').remove(); /* 每次执行前,先移除上次插入的代码 */
  6.       var hm = document.createElement("script");
  7.       hm.src = "https://hm.baidu.com/hm.js?c9f65841519628e5735761cfaac1e9d5&t=" + Date.now(); /* 加上时间戳,便于查看是否动态插入*/
  8.       hm.id = "baidu_tj"
  9.       var s = document.getElementsByTagName("script")[0];
  10.       s.parentNode.insertBefore(hm, s);
  11.     })();
  12.   }, 0);
  13. })

经测试发现:跳转页面后必须手动刷新页面才有记录!效果如图:方法二只有在手动刷新浏览器时才会生效

所以,这个方法是不可取的!但网上仍有部分文章直接复制代码就用,明显是测试不全嘛!

3.3、法三(有效+推荐):开启单页应用数据统计

上面提到的两种方法在网上都能搜索到,但都不完美。法一虽然能正确统计实时访客信息,但要修改两个页面,并且路由模式是hashchange。我们当前项目用的是History API ,所以还是有一丢丢小瑕疵的。那怎么办呢?

艺灵在百度统计后台中发现了一个叫做:单页应用设置的菜单,点进去后发现意外惊喜!如图:法三:先在百度统计后台开启单页应用数据统计法三:先在百度统计后台开启单页应用数据统计经过测试发现,这种方法也是可行的,而且效果还不错,解决了法一的小瑕疵。

咱们先在百度统计后台开启启用单页应用数据统计,然后项目中的具体代码如下:

  1. <script>
  2.   /* 百度统计代码 */
  3.   var _hmt = _hmt || [];
  4.   (function () {
  5.     var hm = document.createElement("script");
  6.     hm.src = " 在这里填写你的百度统计链接 ";
  7.     var s = document.getElementsByTagName("script")[0];
  8.     s.parentNode.insertBefore(hm, s);
  9.     /* 下面的代码非常重要!!! 文档:https://tongji.baidu.com/web/help/article?id=324&type=0 */
  10.     _hmt.push(['_requirePlugin', 'UrlChangeTracker', {
  11.       shouldTrackUrlChange: function (newPath, oldPath) {
  12.         console.log('newPath=', newPath, ';oldPath=', oldPath) /* 控制台可查看日志,发布时请删除此行代码 */
  13.         return newPath && oldPath;
  14.       }}
  15.     ]);
  16.   })();
  17. </script>

保存代码后刷新下页面,然后打开控制台并点击页面上的链接看日志信息,都能完整记录。如图:开启单页应用设置后控制台成功打印数据开启单页应用设置后控制台成功打印数据虽然控制台有记录,但我们要的是百度统计中也能记录。进入百度统计,刷新页面后点开ip后可以看到已经有数据了。数据如图:百度统计后台已经有数据了百度统计后台已经有数据了

四、最后

如果看官的项目是使用vue-cli3脚手架搭建的或者是react或其他框架搭建的,当无法统计访客信息时,建议开启单页应用设置,然后参照方法三修改代码。

转载声明:
  若亲想转载本文到其它平台,请务必保留本文出处!
本文链接:/xwzj/2020-03-22/baidu-tongji-vue-cli3.html

若亲不想直保留地址,含蓄保留也行。艺灵不想再看到有人拿我的技术文章到他的地盘或者是其它平台做教(装)程(B)而不留下我的痕迹。文章你可以随便转载,随便修改,但请尊重艺灵的劳动成果!谢谢理解。

亲,扫个码支持一下艺灵呗~
如果您觉得本文的内容对您有所帮助,您可以用支付宝打赏下艺灵哦!

Tag: vue-cli3  脚手架  vue项目  百度统计  无法统计数据  单页应用  _requirePlugin  _trackPageview  History API  ro

上一篇: element-ui框架中的input实现数字输入框时输入e会造成bug   下一篇: 万城景湖园-关注公众号码上有钱

相关文章

工具分享之Vue Devtools 微信小程序踩坑系列之扫普通链接二 Vue项目优化之用Element-UI表单组 Vue3学习之reactive()用法 @vue/cli3项目开发之优化前端一键 @vue/cli3项目开发之前端一键自动 @vue/cli3项目开发之记一次手动配 uni-app跨端开发微信小程序之HBuil @vue/cli3+typescript项目实战之二 @vue/cli3+typescript项目实战之给

评论区

我要评论

近期更新

权限破解之一键复制某sdn上的代码块 浅聊某sdn是如何实现未登录时屏蔽复制的 bug复盘之如何优雅的实现表格跨页勾选 记一次APP内调起微信支付时首次成功唤醒,后面 记一次注销联通卡的吐血经历 2023年敬业福获取方法 bug复盘之除数为0会怎样? Vite2项目优化之线上功能有异常,如何快速排查 bug复盘之Vite2项目在线上报错,修复后却意外发 工具分享之图片压缩

热门标签

微信小程序 小程序 用户体验 uni-app gulp教程 @vuecli3 vue.js 路由守卫 vuex vue项目实战 路由 自动化构建 破解 网站管理系统 ajax php二次开发 在线生成 京东装修 破解淘宝css权限 jquery插件制作 淘宝店铺装修教程 ie6 bug jquery特效 css3 注册插件 源码分享 悬浮代码 视频教程 全屏模板框架 footer-more-trigger 鼠标滑过特效 sn-simple-logo 淘宝店铺装修经验汇总 喜欢代码 弹出层 宝贝分享代码 购物车代码 登陆插件 宝贝收藏代码 详情页全屏 天猫关注带数字 导航特效 遮罩层特效 修改淘宝销量 flash动画 模块下10px问题 二级下拉菜单 轮播特效 京东店铺装修 插件下载 淘宝漏洞 鼠标跟随 隐藏的店招/模块 css3边框阴影 赚积分

点击排行

为了抓包某app,我折腾了10天,原来他是这样防抓包的 纯css实现超宽图片全屏居中(兼容淘宝店铺) css3边框阴影效果 淘宝店内搜索框代码生成器 淘宝天猫pc端宝贝转无线端链接工具 全屏海报 如何开启HBuilder的javascript语法错误提示功能 淘宝天猫店铺装修问题与技巧性经验汇总 Vue.js实例之v-show用法 Vue.js实例之v-bind:style用法

站长推荐

在线生成软件帮助文档 实现淘宝基础版详情页导航全屏背景的方法 第二期:玩转淘宝店铺装修 网站部分文章更新动态一览表 淘宝天猫店铺装修问题与技巧性经验汇总 淘宝Widget库中轮播特效从入门到精通 曝淘宝网往期改销量多处漏洞 淘宝卖家有无必要开通css 纯css实现超宽图片全屏居中(兼容淘宝店铺) 鼠标滑过图片显示遮罩层特效集合(16种不同特效任你挑选)

代做工资流水公司济南购房银行流水办理合肥工资代付流水办理泉州薪资流水查询宁波企业流水打印费用泉州背调流水公司太原背调银行流水图片潍坊贷款流水报价鞍山代做签证工资流水贵阳贷款工资流水 图片衡阳开工资证明海口薪资流水单代做成都收入证明多少钱福州贷款流水价格无锡薪资银行流水多少钱盐城打印背调流水衡阳查询工资银行流水长春做转账银行流水长春银行流水开具廊坊转账流水代开绵阳自存流水公司开封薪资流水制作湘潭代做企业流水打印青岛贷款工资流水 图片上饶工资银行流水报价许昌代做工资流水app截图青岛代开背调工资流水上海背调工资流水扬州签证流水报价南昌个人银行流水图片柳州银行流水PS公司香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化