Nuxt3接入51la等网站统计


在这里插入图片描述

你们做网站会不会关注有多少人访问呢? 我是会关注的。

把自己的内容分享出来,让过多的的人看到是一件令人兴奋的事情,所以我就想要把我实现的每一个功能,都以文章的形式进行分享。那么怎么样能够知道有多少人点进来了呢?答案就是网站统计

关于统计

网站统计这段时间闹得沸沸扬扬的,就是CNZZ这个统计厂商开始收费了,于是大家都转到了 51.la( https://v6.51.la/ ),开始说什么割韭菜之类的,其实我是不认同的,因为大家毕竟都要吃饭嘛,宝塔的统计还要9.9一个月呢。所以这个事情其实也没啥讨论的,事情发生以后51啦开始说话了:近日流量突增,统计可能出现延迟,得嘞,流量全跑这里来了,当然,这都是题外话。目前统计使用最多的有三个(排名不分先后):

  • CNZZ
  • 51啦
  • 百度统计

剩下的我也了解不多,所以不在多说。下面开始叙述我在Nuxt3中集成网站统计的过程。

集成之路

官网示例

在使用Nuxt3后发现,真的很多东西缺乏官方文档的支持,非常难办,唯一能够在文档中找到的就是集成谷歌统计,传送门:https://v3.nuxtjs.org/guide/directory-structure/plugins
所以集成谷歌统计就非常简单了,使用yarn安装一个插件,再稍微配置下,完成。

yarn add --dev vue-gtag-next
//plugins/vue-gtag.client.js
import VueGtag from 'vue-gtag-next'

export default defineNuxtPlugin((nuxtApp) => {
  nuxtApp.vueApp.use(VueGtag, {
    property: {
      id: 'GA_MEASUREMENT_ID'
    }
  })
})

是不是太简单了?可是我们不用谷歌统计呀!

统计代码

我们来看看51啦提供的统计代码:

!function(p){"use strict";!function(t){var s=window,e=document,i=p,c="".concat("https:"===e.location.protocol?"https://":"http://","sdk.51.la/js-sdk-pro.min.js"),n=e.createElement("script"),r=e.getElementsByTagName("script")[0];n.type="text/javascript",n.setAttribute("charset","UTF-8"),n.async=!0,n.src=c,n.id="LA_COLLECT",i.d=n;var o=function(){s.LA.ids.push(i)};s.LA?s.LA.ids&&o():(s.LA=p,s.LA.ids=[],o()),r.parentNode.insertBefore(n,r)}()}({id:"id",ck:"ck"});

官网的意思就是把这段代码扔在footer.html的script标签里面去,确实,在传统网站里面,这样方式无疑非常简单,可是现在我们是nuxt3,并且使用的ts语法,那么怎么办呢?

国内统计都是这样的,一段代码或者一个js。

分析

还是回到上面的谷歌统计插件去,可以看到集成谷歌总共也就三部:

  1. 安装统计插件
  2. import导入插件
  3. 配置插件id

开干

那么我们也照它这么做,首先我们先在plugins目录创建一个文件:tj.client.ts

安装统计插件

怎么安装统计插件?yarn又没有提供51啦或者其他网站统计厂商的依赖包,那么我们看下第二部,import导入,那么自己写一个文件,让它导入不就可以了吗?
在assets文件夹下,或者public文件夹都行,新建一个文件:tj.js,我这里是assets/js/ts.js,其实都无所谓了,然后把我们的统计代码粘贴进来:

//assets/js/ts.js
!function(p){"use strict";!function(t){var s=window,e=document,i=p,c="".concat("https:"===e.location.protocol?"https://":"http://","sdk.51.la/js-sdk-pro.min.js"),n=e.createElement("script"),r=e.getElementsByTagName("script")[0];n.type="text/javascript",n.setAttribute("charset","UTF-8"),n.async=!0,n.src=c,n.id="LA_COLLECT",i.d=n;var o=function(){s.LA.ids.push(i)};s.LA?s.LA.ids&&o():(s.LA=p,s.LA.ids=[],o()),r.parentNode.insertBefore(n,r)}()}({id:"id",ck:"ck"});

这样我们的第一步,安装插件就完成了。

import导入插件

import VueGtag from 'vue-gtag-next'替换成import '~/assets/js/tj.js',就可以了:

//plugins/tj.client.ts
import '~/assets/js/tj.js'


export default defineNuxtPlugin(nuxtApp => {

})

完成!

配置插件id

兄弟,还想啥呢? 第一步的代码里面已经包含统计id和ck了,还看什么呢?直接发布然后去看数据报表吧!

详细代码可以看我Nuxt3项目实战的开源代码:https://github.com/ZN-GG/ZNGG-Nuxt3

或者看我的项目展示:ZNGG在线工具:https://www.zngg.net/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值