{"id":19990244,"url":"https://github.com/raychenfj/vue-uweb","last_synced_at":"2025-05-04T09:34:51.385Z","repository":{"id":18600137,"uuid":"83801718","full_name":"raychenfj/vue-uweb","owner":"raychenfj","description":"vue 友盟统计埋点插件","archived":true,"fork":false,"pushed_at":"2022-03-02T05:47:49.000Z","size":2091,"stargazers_count":169,"open_issues_count":29,"forks_count":31,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-21T04:46:00.089Z","etag":null,"topics":["statistics","vue-plugin","vuejs"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raychenfj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-03T13:37:47.000Z","updated_at":"2024-05-23T15:53:51.000Z","dependencies_parsed_at":"2022-07-26T23:16:59.102Z","dependency_job_id":null,"html_url":"https://github.com/raychenfj/vue-uweb","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raychenfj%2Fvue-uweb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raychenfj%2Fvue-uweb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raychenfj%2Fvue-uweb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raychenfj%2Fvue-uweb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raychenfj","download_url":"https://codeload.github.com/raychenfj/vue-uweb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252316837,"owners_count":21728521,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["statistics","vue-plugin","vuejs"],"created_at":"2024-11-13T04:51:05.484Z","updated_at":"2025-05-04T09:34:50.766Z","avatar_url":"https://github.com/raychenfj.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# vue-uweb \n[![Build Status](https://travis-ci.org/raychenfj/vue-uweb.svg?branch=master)](https://travis-ci.org/raychenfj/vue-uweb)\n\u003e vuejs 友盟统计埋点插件 \n\n## 1. 安装\n\n```shell\nnpm install vue-uweb --save\n```\n直接在页面中引用\n```html\n\u003cscript src=\"./node_modules/vue-uweb/dist/vue-uweb.min.js\"\u003e\u003cscript\u003e\n```\n或通过es6模块加载\n```javascript\nimport uweb from 'vue-uweb'\n```\n使用 vue-uweb 插件\n```javascript\nVue.use(uweb,'YOUR_SITEID_HERE')\n```\n通过传递 options 参数进行更多设置\n```javascript\nVue.use(uweb,options)\n```\n**options**\n\n| 参数 | 必输 | 默认 | 说明 | 备注 |\n|-----|------|-----|-----|------|\n| siteId | 是 | | 绑定要接受API请求的统计代码siteid| |\n| debug | 否 | false | 调试模式下将在控制台中输出调用 window._czc.push 时传递的参数 | **请不要在生产环境中使用，避免造成安全隐患** |\n| autoPageview | 否 | true | 是否开启自动统计PV | |\n| src | 否 | 精简代码 http://s11.cnzz.com/z_stat.php?id=SITEID\u0026web_id=SITEID | 指定统计脚本标签的 src 属性 | |\n\n## 2. uweb API\n\n[查看官方文档](http://open.cnzz.com/a/new/procedure/)\n\n**注意:** 所有 this 均为 Vue 实例\n\n### 2.1 ready\n\n当需要严格控制加载时序时，可使用 ready 方法。该方法返回一个 promise，当外部统计脚本加载完毕，全局 _czc 对象存在时，promise 被 resolve。\n\n**用法**\n```javascript\nthis.$uweb.ready().then(() =\u003e {\n  ...\n}).catch(() =\u003e {\n  ... // error handling here\n})\n\n// 使用 async await, 建议使用 try/catch 避免加载失败影响主程序\nasync SOME_METHOD () {\n  try {\n    await this.$uweb.ready()\n    ...\n  } catch (e){\n    ... // error handling here\n  }\n}\n```\n\n### 2.2 trackPageview\n\n用于发送某个URL的PV统计请求，适用于统计AJAX、异步加载页面，友情链接，下载链接的流量。\n\n**用法**\n```javascript\nthis.$uweb.trackPageview(content_url[, referer_url])\n```\n\n**参数**\n\n| 参数 | 必输 | 类型 | 说明 |\n|-----|------|-----|-----|\n| content_url | 是 | string | 自定义虚拟PV页面的URL地址，填写以斜杠‘/’开头的相对路径，系统会自动补全域名 |\n| referer_url | 否 | string | 自定义该受访页面的来源页URL地址，建议填写该异步加载页面的母页面。不填，则来路按母页面的来路计算。填为“空”，即\"\"，则来路按“直接输入网址或书签”计算。 |\n\n### 2.3 trackEvent\n\n用于发送页面上按钮等交互元素被触发时的事件统计请求。如视频的“播放、暂停、调整音量”，页面上的“返回顶部”、“赞”、“收藏”等。也可用于发送Flash事件统计请求。\n\n**用法**\n```javascript\nthis.$uweb.trackEvent(category, action[, label, value, nodeid])\n```\n\n**参数**\n\n| 参数 | 必输 | 类型 | 说明 |\n|-----|------|-----|-----|\n| category | 是 | string | 表示事件发生在谁身上，如“视频”、“小说”、“轮显层”等等。 |\n| action | 是 | string | 表示访客跟元素交互的行为动作，如\"播放\"、\"收藏\"、\"翻层\"等等。|\n| label | 否 | string | 用于更详细的描述事件，如具体是哪个视频，哪部小说。|\n| value | 否 | int | 用于填写打分型事件的分值，加载时间型事件的时长，订单型事件的价格。请填写整数数值，如果填写为其他形式，系统将按0处理。若填写为浮点小数，系统会自动取整，去掉小数点。|\n| nodeid | 否 | string | 填写事件元素的div元素id。请填写class id，暂不支持name。|\n\n### 2.4 setCustomVar\n\n用于发送为访客打自定义标记的请求，用来统计会员访客、登录访客、不同来源访客的浏览数据。\n\n**用法**\n```javascript\nthis.$uweb.setCustomVar(name, value[, time])\n```\n\n**参数**\n\n| 参数 | 必输 | 类型 | 说明 |\n|-----|------|-----|-----|\n| name | 是 | string | 自定义访客种类，用来描述观察访客的角度，如“会员级别”、“访客来源”等等。 |\n| value | 是 | string | 自定义访客值，表示对访客类型的具体描述，如\"VIP1\"、\"VIP2\"等等。|\n| time | 否 | int | 有效时长，表示本自定义访客标记的生效时长。 不填或填“1”表示长期有效。填“0”表示仅在发包页面有效。填“2”表示仅在本访次有效。填具体数值，表示生效时长，单位“秒”。|\n\n### 2.5 setAccount\n\n当您的页面上添加了多个CNZZ统计代码时，需要用到本方法绑定需要哪个siteid对应的统计代码来接受API发送的请求。未绑定的siteid将忽略相关请求。\n\n**备注：** 一般情况下无需调用该方法，只需调用 Vue.use 时直接传递 siteId 或通过 options.siteId 传递即可\n\n**用法**\n```javascript\nthis.$uweb.setAccount(siteid)\n```\n\n**参数**\n\n| 参数 | 必输 | 类型 | 说明 |\n|-----|------|-----|-----|\n| siteid | 是 | int | 绑定要接受API请求的统计代码siteid。 |\n\n### 2.6 setAutoPageview\n\n如果您使用_trackPageview改写了已有页面的URL，那么建议您在CNZZ的JS统计代码执行前先调用_setAutoPageview，将该页面的自动PV统计关闭，防止页面的流量被统计双倍。\n\n**备注：** 在调用 Vue.use 时可通过 options.autoPageview 设置初始值，默认为 true\n\n**用法**\n```javascript\nthis.$uweb.setAutoPageview(autopageview)\n```\n\n**参数**\n\n| 参数 | 必输 | 类型 | 说明 |\n|-----|------|-----|-----|\n| autopageview | 是 | boolean | 是否自动发送页面PV的统计请求。关闭自动发送，填false开启自动发送，为true，不调用时默认为true。 |\n\n### 2.7 deleteCustomVar ###\n\n发送删除自定义访客标签的请求。将访客身上已被标记的自定义访客类型去掉，去掉后不再继续统计。\n\n**用法**\n```javascript\nhis.$uweb.deleteCustomVar(name)\n```\n\n**参数**\n\n| 参数 | 必输 | 类型 | 说明 |\n|-----|------|-----|-----|\n| name | 是 | string | 需要被删除的自定义访客类型。 填写自定义访客类型种类名name。 |\n\n## 3. uweb 指令\n\nvue-uweb 提供 track-event，track-pageview 和 auto-pageview 三个指令，开发者可以直接在 html 模版中使用来统计网站数据\n\n### 3.1 track-event\n\n使用指令 v-track-event 监听事件， 通过 modifiers 指定事件类型，将自动为绑定元素添加事件监听，当事件触发调用统计代码。 如不指定事件，默认监听 click 事件。 \n\n可通过逗号分隔的字符串或对象字面量传递参数，以字符串传递时请注意参数顺序，可参考trackEvent API。\n\n**用法**\n```html\n\u003cbutton v-track-event.click=\"'category, action''\"\u003e\u003c/button\u003e // 统计click事件\n\n\u003cbutton v-track-event=\"'category, action'\"\u003e\u003c/button\u003e // 统计click事件简写\n\n\u003cinput v-track-event.keypress=\"'category, action'\"\u003e // 统计keypress事件\n\n\u003cbutton v-track-event=\"'category, action, label, value, nodeid'\"\u003e\u003cbutton\u003e // 以字符串传递参数\n\n\u003cbutton v-track-event=\"{category:'event', action:'click'}\"\u003e\u003c/button\u003e // 以对象字面量传递参数\n```\n\n### 3.2 track-pageview\n\n使用指令 track-pageview 统计虚拟 PV ，一般可以配合 v-show 或 v-if 来统计局部动态视图的 PV。\n\n可通过逗号分隔的字符串或对象字面量传递参数，以字符串传递时请注意参数顺序，可参考trackPageview API。\n\n**用法**\n```html\n\u003cdiv v-show=\"show\" v-track-pageview=\"'/bar'\"\u003ebar\u003c/div\u003e //  跟踪 v-show 绑定元素的虚拟pv\n\n\u003cdiv v-if=\"show\" v-track-pageview=\"'/foo'\"\u003efoo\u003c/div\u003e // 跟踪 v-if 绑定元素的虚拟pv\n\n\u003cdiv v-track-pageview=\"'/tar, https://github.com/raychenfj'\"\u003e\u003c/div\u003e // 以字符串指定受访页面和来源\n\n\u003cdiv v-track-pageview=\"{content_url:'/zoo', referer_url:'https://github.com/raychenfj'}\"\u003e\u003c/div\u003e // 以对象字面量指定受访页面和来源\n```\n\n### 3.3 auto-pageview\n\n使用指令 auto-pageview 开关自动统计\n\n**用法**\n``` html\n\u003cdiv v-auto-pageview=true\u003e\u003c/div\u003e // 启用 auto-pageview\n\n\u003cdiv v-auto-pageview=false\u003e\u003c/div\u003e // 停止 auto-pageview\n```\n\n## 4. 默认参数和改变参数顺序\n\n认情况下，vue-uweb 并不提供默认参数和参数顺序的设置，但开发者可以根据需求，使用装饰器模式，来提供默认参数和改变参数顺序。\n\n例如：我们想在监听事件时默认category，只需要传递action，则代码如下\n\n```javascript\nlet trackEvent = uweb.trackEvent\nuweb.trackEvent = (action, category='default') =\u003e {\n  trackEvent.call(uweb, category, action, '', '', '')\n}\n\nVue.use(uweb)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraychenfj%2Fvue-uweb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraychenfj%2Fvue-uweb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraychenfj%2Fvue-uweb/lists"}