rrweb--vue如何调用rrweb上传回溯

1、rrweb是什么?

rrweb是‘record and replay the web’的简写,用来录制并回放任意web界面中的用户操作

2、rrweb的原理

rrweb原理 —— rrweb 通过记录初始页面的DOM 状态,或者特定某个时刻的DOM 状态,后续收集不同时间点的操作指令 或者 某个时刻某个DOM 的变化作为一个增量快照,在原先快照的基础上,不断加入根据行为解析的DOM 数据,构建了后续的快照,减少大量数据的存储或传输。

3、rrweb的功能
  • 记录用户使用产品的方式并加以分析,进一步优化
  • 收集用户遇到的bug的操作路径,予以及时复现
  • 回溯用户的操作过程,可作为证据存储
  • 录制体积更小,清晰度无损的演示视频
  • 记录自动化测试的执行情况
4、创建 util/rrweb.sdk-1.2.0.js(文件过大有需要可私)

注: reportUrl要注意区分环境

5、创建 mixins/RrwebMixins.js
import rrwebSDK from '@/util/rrweb.sdk-1.2.0' // 回溯
const Config = {
    goodsName: window.GLOBAL_CONSTANT.PROJECT_NAME, // 产品名称
    goodsCode: window.GLOBAL_CONSTANT.BAOSI_CODE, // 产品编码
    origin: 'HHHH', // 来源,可在后台字典中配置
    goodsVersion: '1.0.1'  // 产品版本(如果是上报版本,非手动定义),每个页面必需
}

export default {
    name: 'RrwebMixins',
    data() {
        return {
            mixRrwebSdk: undefined,
            mixIsRrwebStop: false
        }
    },

    created() {
        this.mixRrwebStart()
    },
    destroyed() {
        !this.mixIsRrwebStop && this.mixRrwebStop()
    },
    methods: {
        // 回溯初始化 开始录制
        mixRrwebStart(param = {}) {
            if (!this.mixRrwebSdk) {
                // 回溯初始化 
                this.mixRrwebSdk = new rrwebSDK()
                // 回溯开始录制
                this.mixRrwebSdk.start({ ...Config, ...param })
            }
        },
        // 上报录制内容
        mixRrwebReport(param = {}) {
            this.mixRrwebSdk.report({ ...Config, ...param })
        },

        mixRrwebOpenUrl(url) {
            this.mixRrwebSdk.open(url)
        },

        // 结束录制
        mixRrwebStop(callback = () => { }) {
            this.mixIsRrwebStop = true
            this.mixRrwebSdk.leaveReport(callback)
            this.mixRrwebSdk = undefined
        }
    },
}

6、在需要录制回溯且上报的页面使用
// 引入mixin
import RrwebMixins from '@/mixins/RrwebMixins'

export default {
   name: 'Home',
   mixins: [RrwebMixins],
   methods: {
    // 表单提交按钮
	submit() {
	  // 回溯上报--需要哪些参数传哪些(定义好)
      const { idCardNo: idNo } = params
      this.mixRrwebReport({idNo, orderNo})
 		
	   // 其他正常支付 携带参数跳转到收银台页面
       const payParam = {money, orderNo, autoYearRenewal}
       const query = { payParams: JSON.stringify(payParam) }
       this.mixRrwebStop(() => this.$router.push({path: '/cashier', query}))
	  }
	}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值