返回顶部
首页 > 资讯 > 精选 >怎么在Vue单页面中进行业务数据的上报
  • 334
分享到

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

2023-06-15 02:06:59 334人浏览 泡泡鱼
摘要

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

小编给大家分享一下怎么在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 :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单页面中进行业务数据的上报”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 怎么在Vue单页面中进行业务数据的上报

本文链接: https://lsjlt.com/news/276727.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在Vue单页面中进行业务数据的上报
    小编给大家分享一下怎么在Vue单页面中进行业务数据的上报,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!概述业务数据的上报主要分为:各个路由的PV上报;用户的点击行为上报;用户操作结果(分享是否成功)的数据上报等;通用和必须...
    99+
    2023-06-15
  • 如何在Vue单页面中进行业务数据的上报
    目录概述1. 各个路由的PV上报2. 用户点击行为的上报3. 用户操作结果的数据上报总结概述 业务数据的上报主要分为: 各个路由的PV上报; 用户的点击行为上报; ...
    99+
    2024-04-02
  • CSS怎么在页面上对背景图像进行平铺
    本文小编为大家详细介绍“CSS怎么在页面上对背景图像进行平铺”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS怎么在页面上对背景图像进行平铺”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学...
    99+
    2024-04-02
  • MyBatis中怎么进行数据库分页查询
    在MyBatis中进行数据库分页查询,可以通过使用RowBounds对象或PageHelper插件来实现。 使用RowBounds...
    99+
    2024-04-08
    MyBatis
  • 怎么在HDFS中进行数据压缩
    这篇文章主要讲解了“怎么在HDFS中进行数据压缩”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在HDFS中进行数据压缩”吧!通过数据压缩实现高效存储数据压缩是文件处理的重要方面,在处理H...
    99+
    2023-06-02
  • vue中elment-ui table怎么合并上下两行相同数据单元格
    这篇文章主要介绍vue中elment-ui table怎么合并上下两行相同数据单元格,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!html : <el-table &...
    99+
    2024-04-02
  • 怎么在linux中对数据进行压缩
    这篇文章将为大家详细讲解有关怎么在linux中对数据进行压缩,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1,tar命令使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是...
    99+
    2023-06-09
  • 怎么在java中对数据进行比较
    这篇文章将为大家详细讲解有关怎么在java中对数据进行比较,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表...
    99+
    2023-06-14
  • form表单只提交数据而不进行页面跳转的解决方案
    一般的form提交操作写法为 复制代码 代码如下: <form action="saveReport.htm" method="post"> …… <input t...
    99+
    2022-11-15
    form表单 提交数据 页面跳转
  • Ajax怎么实现表格中信息不刷新页面进行更新数据
    这篇文章主要介绍了Ajax怎么实现表格中信息不刷新页面进行更新数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下html:<!DOCTYPE ht...
    99+
    2023-06-08
  • 怎么在MySQL数据库中进行时间查询数据
    这篇文章主要介绍“怎么在MySQL数据库中进行时间查询数据”,在日常操作中,相信很多人在怎么在MySQL数据库中进行时间查询数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2023-05-25
    mysql
  • 怎么在DM7中进行数据过滤迁移
    这篇文章主要介绍“怎么在DM7中进行数据过滤迁移”,在日常操作中,相信很多人在怎么在DM7中进行数据过滤迁移问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在DM7中进行数...
    99+
    2024-04-02
  • Node 中怎么在Controller 层进行数据校验
    Node 中怎么在Controller 层进行数据校验,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。数据校验层后端由于重业务逻辑以及待处理...
    99+
    2024-04-02
  • vue中更改数组中属性在页面中不生效怎么办
    这篇文章将为大家详细讲解有关vue中更改数组中属性在页面中不生效怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。问题描述:使用vue的方法获取了数组数据,获取数据后为...
    99+
    2024-04-02
  • 在java中怎么对数据类型进行进制转换
    在java中怎么对数据类型进行进制转换?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在java中Int 类型的变量占 4个字节Long 类型的变量占8个字节一个程序就是一个...
    99+
    2023-05-31
    java ava 数据类
  • 怎么在Android中对SQLite数据库进行数据持久化
    怎么在Android中对SQLite数据库进行数据持久化?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。SQLiteOpenHelper:创建数据库和数据库版本管理的辅助类,...
    99+
    2023-05-31
    android 数据持久化 sqlite数据库
  • 怎么在Ubuntu和Elementary OS上使用NaSC进行简单数学运算
    这篇文章主要讲解了“怎么在Ubuntu和Elementary OS上使用NaSC进行简单数学运算”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Ubuntu和Elementary OS上...
    99+
    2023-06-16
  • 在SpringMVC中使用Mybatis怎么实现对Mysql数据库进行分页查询
    在SpringMVC中使用Mybatis怎么实现对Mysql数据库进行分页查询?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。第一步,搭建这个小案例,引入spring和mybti...
    99+
    2023-05-31
    springmvc mybatis mysql
  • 怎么在Python中使用Pandas进行数据清洗
    怎么在Python中使用Pandas进行数据清洗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python的五大特点是什么python的五大特点:1.简单易学,...
    99+
    2023-06-14
  • 在不使用ssr的情况下怎么解决Vue单页面SEO问题
    小编给大家分享一下在不使用ssr的情况下怎么解决Vue单页面SEO问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!只是用php...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作