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/

Nuxt.js v3 中接入微信扫码授权登录的流程通常需要以下几个步骤: 1. **安装依赖**: 首先,你需要安装微信提供的官方 SDK,可以使用 npm 或 yarn 安装: ``` npm install wx-jssdk --save # 或者 yarn add wx-jssdk ``` 2. **配置微信JS安全域名**: 在微信公众平台上,设置你的服务器域名用于微信网页授权,确保这个域名已经添加到公众号后台的“开发者中心”的“JS接口安全域名”列表。 3. **引入并初始化 SDK**: 在 Nuxt 的组件或页面里,初始化微信 JavaScript 封装库: ```javascript import Wx from 'wx-jssdk' export default { async mounted() { if (process.client) { // 只在浏览器环境中运行 await this.$axios.get('api/wechat/getJSSDK') // 获取微信SDK配置 .then(({ config }) => { Wx.config({ debug: false, // 是否显示错误信息 appId: config.appId, timestamp: config.timestamp, nonceStr: config.nonceStr, signature: config.signature, jsApiList: ['checkJsApi', 'getUserInfo'] // 需要使用的API }) Wx.ready(() => { // 初始化成功后可以调用微信登录功能 this.loginWithWechat() }) }) } }, methods: { loginWithWechat() { Wx.authorize({ scope: 'snsapi_userinfo', // 请求用户基础信息权限 success(res) { // 用户授权成功后,可以调用getUserInfo获取详细信息 this.getUserInfo() }, fail(err) { console.error('微信登录失败:', err) } }) }, getUserInfo() { Wx.getUserInfo({ success(res) { const userInfo = res.userInfo // 得到用户的微信头像、昵称等信息 // 这里处理获取的信息,例如将数据发送到后端服务器 }, fail(err) { console.error('获取用户信息失败:', err) } }) } } } ``` 4. **后端处理**: 后端接收到前端传来的用户信息后,验证并存储用户的微信 OpenID 和其他必要的信息。同时,你还需要处理授权回调跳转回来的情况。 5. **安全性考虑**: 确保所有涉及用户敏感信息的操作都在HTTPS环境下,并妥善保管用户的授权令牌。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值