β

Vue.js 单页应用部署百度统计

邵珠庆の博客 265 阅读

前言

申请 百度统计 后,会得到一段JS代码,需要插入到每个网页中去,在 Vue.js 项目首先想到的可能就是,把统计代码插入到index.html入口文件中,这样就全局插入,每个页面就都有了;这样做就涉及到一个问题, Vue.js 项目是 单页 应用 ,每次用户浏览网站时,访问内页时页面是不会刷新的,也就意味着不会触发 百度统计 代码;所以最终在 百度统计 后台看到的效果就是只统计到了网页入口的流量,却无法统计到内页的访问流量。

解决方法

在main.js文件中调用vue-router的afterEach方法,将统计代码加入到这个方法里面,这样每次router发生改变的时候都会执行一下统计代码,这样就达到了目的,代码如下:



router.afterEach( ( to, from, next ) => {
    setTimeout(()=>{
        var _hmt = _hmt || [];
        (function() {
            //每次执行前,先移除上次插入的代码
            document.getElementById('baidu_tj') && document.getElementById('baidu_tj').remove();
            var hm = document.createElement("script");
            hm.src = "https://hm.baidu.com/hm.js?xxxx";
            hm.id = "baidu_tj"
            var s = document.getElementsByTagName("script")[0];
            s.parentNode.insertBefore(hm, s);
        })();
    },0);
} );
作者:邵珠庆の博客
生命只有一次,你可以用它来做些更多伟大的事情--Make the world a little better and easier
原文地址:Vue.js 单页应用部署百度统计, 感谢原作者分享。

发表评论