我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么在Vue单页面中进行业务数据的上报

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么在Vue单页面中进行业务数据的上报

小编给大家分享一下怎么在Vue单页面中进行业务数据的上报,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

概述

业务数据的上报主要分为:

  • 各个路由的PV上报;

  • 用户的点击行为上报;

  • 用户操作结果(分享是否成功)的数据上报等;

通用和必须上报的数据,均在上报的代码中进行固定,比如设备信息、用户信息、cookie等都需要上报的数据,在上报前处理完成,需要异步获取且数据固定的,做好存储,防止每次都要重新获取;其他额外的数据,通过对外暴露的send方法进行传递。

比如获取信息这块,客户端给到的jsapi,有可能只能异步调用,那么我们就可以这么处理:

function getAppInfo() {    let appInfo = {};    return ()=> {        if (appInfo.deviceId) {            return Promise.resolve(appInfo);        } else {            return new Promise((resolve, reject) => {                ABB.getAppInfo(info => {                    if (info.deviceId) {                        appInfo = info;                        resolve(appInfo);                    } else {                        reject(new Error('get AppInfo error'));                    }                })            })        }    }}const AppInfo = getAppInfo();console.log( AppInfo() );

1. 各个路由的PV上报

各个路由的PV上报可以通过vue router的afterEach来实现,每次路由刷新时,afterEach方法都会执行,那么我们在这里进行PV的上报:

// 每个hash路由的PV上报router.afterEach((to)=>{    // to为当前已打开的页面,to.name为在router/index.ts中设定的name    dataBoss.sendPV(to.name);})

2. 用户点击行为的上报

用户点击行为的上报,之前是在每个点击的业务代码最后,进行一次点击上报。不过这样一个不好的地方是,必须为每个需要上报的点击元素添加一段业务代码,同时,如果多个点击行为共享某个业务片段时,需要进行点击区分:

methods: {    myClick(value, prarams, act) {        // ... 业务逻辑的处理        // 数据的上报        wzp.send({            act: act,            pageSource: 'MainPage'        })    }}

现在,我们利用Vue中的自定义指令来实现点击行为的上报,上报的处理与业务代码进行分割:

// 自定义指令的官方文档: https://cn.vuejs.org/v2/guide/custom-directive.html// 自定义boss指令// bind: 只对该元素绑定一次// el: 触发时的DOM元素// binding.value: 传入的值// 使用 v-boss="{page: 'MainPage', sop: 'donate'}"Vue.directive('boss', {    //     bind: function (el: HTMLElement, binding: any) {        el.addEventListener('click', ()=>{            // 绑定click事件,触发后进行数据上报            Vue.prototype.$dataBoss.send(binding.value)        })    }})

自定义v-boss指令后,我们就可以在元素上使用这个指令后:

<!-- 为用户头像添加点击数据上报 --><div class="avatar" v-boss="{pageName: 'MainPage', sop: 'sop_own_click'}" @click="linkTo">    <img :class="lazy" data-src="user.avatar" :alt="user.nickname"></div>

3. 用户操作结果的数据上报

这里的数据上报是用户点击行为之后的结果上报,比如用户点击了分享按钮,那么最终他是真的分享成功了,还是中途又取消了。这种数据的上报,可以分析出用户从意图操作到最终实现的一个流失情况。

操作结果的数据上报,依赖于客户端或者接口给反馈的结果,这就需要在业务代码中实现了,定义一个全局变量$dataBoss,通过这个来上报数据:

比如分享是否成功的监控:

// 发起分享handleShare() {    share.show();    share.on('shareResult', res => {        this.$dataBoss.send({            sop: 'share_success'        });    })}

根据接口中的数据进行上报:

handleUser() {    jsonp(url).then(result => {        this.$dataBoss.send({            kv: {                money: 20            }        });    })}

Vue的优点

Vue具体轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快等优势,Vue中页面使用的是局部刷新,不用每次跳转页面都要请求所有数据和dom,可以大大提升访问速度和用户体验。

看完了这篇文章,相信你对“怎么在Vue单页面中进行业务数据的上报”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么在Vue单页面中进行业务数据的上报

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么在Vue单页面中进行业务数据的上报

小编给大家分享一下怎么在Vue单页面中进行业务数据的上报,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!概述业务数据的上报主要分为:各个路由的PV上报;用户的点击行为上报;用户操作结果(分享是否成功)的数据上报等;通用和必须
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录