vue中使用rrweb实现页面回放功能

这篇具有很好参考价值的文章主要介绍了vue中使用rrweb实现页面回放功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

rrweb实现页面回放功能 实现页面可回溯

rrweb github开源地址

rrweb简介

  1. rrweb他是啥?*rrweb 指的是’record and replay the web’,它是一个用于记录和回放用户在网络上的交互的工具。作为一个开发者可能在项目中你可能会遇到各种奇怪的需求。例如记录和回访网页上所有的操作记录。
  2. rrweb能干嘛?相信看到标题的同学都知道 是用于记录用户在页面上的所有操作纪录,那么问题来了在日常开发中可以用在那些地方呢? 答:微信小程序,h5小程序,uni-app,浏览器页面。(只要你所开发得东西是由html+css开发得就能实现录制回放)
  3. rrweb的录制原理?**就是记录你操作的元素并且把操作时候的时间戳给你记录下来,把这些操作和时间戳存储成增量的快照,然后通过时间戳依次播放出来。**如果想更详细的了解可以转移官方文档rrweb录制播放实现原理

rrweb的使用小demo

rrweb的主要就是录制播放两个方法

1.安装rrweb

下面两个依赖包 rrweb的是录制依赖包,rrweb-player为回放依赖包

	npm install --save rrweb
	npm install --save rrweb-player

2.录制

由于我是在一进入页面就开始录制的所以我的录制是放在App.vue文件下面的。

参数说明:

  1. import * as rrweb from “rrweb”; 引入rrweb录制
  2. 通过rrweb.record()的方法开启录制。这个方法里面传入一个emit方法,方法的event就是录制视频的视频片段,他会把所有的数据都存到event里面。
  3. 我们需要把这个event视频片段 存起了 我这里是存到了 vuex里面,当然你也可以存到
    localstorage,sessionstrage,indexedDB浏览器内存里面,再或者可以直接通过axios,或者ajax
    发送给后台,等播放的时候再拿出来。
  4. 当然rrweb.record返回一个 方法(stopFn)你可以使用这个方法去停止视频录制,我这里是在12秒后去停止了录制,如果你想一直录制视频可以把定时器去掉他就会一直录制视频。了解录制更多参数
  5. 最后在页面进入的时候调用这个方法。到这个地方录制一切准备就以就绪了。

如果是vue2的话 直接把onMounted 改成mounted就行了。

	//1.引入rrweb
	import * as rrweb from "rrweb";
	//2.点击录制
    const startRecord = () => {
      //record() 方法启动录制
      //stopFn为暂停录制的方法
      let stopFn = rrweb.record({
      //12秒后停止页面的录制,如果想一直录得话可以去掉。
        emit(event) {
          setTimeout(() => {
            stopFn();
          }, 12000);
          // 用任意方式存  储 event 
          store.commit("updateEvents", { event: event });
        },
      });
      ElMessage({
        message: "开启视频录制",
        type: "success",
      });
    };
    onMounted(() => {
      startRecord();
    });

vue中使用rrweb实现页面回放功能

3.播放

新建一个组件back.vue当进入这个页面得时候就暂停录制,或者你也可以写个按钮 去出发暂停。

  1. 视频放功能 引入 播放器的样式import “rrweb-player/dist/style.css”;
  2. 引入播放的实例 import rrwebPlayer from “rrweb-player”;
  3. new rrwebPlayer()这个实例,里面可以传一个对象。 对象里面传入target 字段 ,对应得是视频播放的区域,还有一个props。了解更多参数可以去开发文档
    props: {
    events: store.state.events,
    speedOption: [1, 2, 5, 10],
    },传入props字段 里面得events为你在录制时候存储得视频片段。speedOption为视频播放器得倍速设置。

vue中使用rrweb实现页面回放功能

<template>
  <div class="counte">
    <div id="playback"></div>
  </div>
</template>

<script>
import { ref, onMounted } from "vue";
import { useStore } from "vuex";
import rrwebPlayer from "rrweb-player";
import "rrweb-player/dist/style.css";
export default {
  name: "Back",
  setup(props) {
    const store = useStore();
    //回放实例
    const replayer = ref(null);
    onMounted(() => {
      stopRecord();
    });
    // //4.点击回放
    const stopRecord = () => {
      replayer.value = new rrwebPlayer({
        target: document.getElementById("playback"), // 可以自定义 DOM 元素
        props: {
          events: store.state.events,
          speedOption: [1, 2, 5, 10],
        },
      });
    };
    return {};
  },
};
</script>

<style>
.n {
  display: none;
}
</style>

希望可以帮到你文章来源地址https://www.toymoban.com/news/detail-485123.html

到了这里,关于vue中使用rrweb实现页面回放功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue项目中页面实现全屏的功能

    2024年02月07日
    浏览(38)
  • vue实现打印浏览器页面功能(两种方法)

    1,安装 npm install vue-print-nb --save 2,引入 安装好以后在main.js文件中引入 Vue.use(Print); //注册 3,现在就可以使用了 4.如需通过链接地址打印:window.location.href = airway_bill; airway_bill为链接地址。 5.如果内容打印不全,在打印操作时点击更多设置,然后设置缩放。 插件地址:https

    2024年02月02日
    浏览(51)
  • vue实现轨迹回放(很详细)

        时间搜索查询轨迹并生成(默认是当前的一天的时间) 图标能跟随路径方向移动 删除了百度logo和版权信息(业务需要,不建议删除) Vue Baidu Map

    2023年04月09日
    浏览(30)
  • Vue+SpringBoot项目开发:登录页面美化,登录功能实现(三)

    上一章写了从零开始Vue+SpringBoot后台管理系统:Vue3+TypeScript项目搭建 Vue+TypeScript的前端项目已经搭建完成了 这一章的内容是引入element-plus和axios实现页面的布局和前后端数据的串联,实现一个登陆的功能,跳转到首页 现在前端项目的一个结构目录 在src/main.js中加入element-plus

    2024年02月13日
    浏览(47)
  • Vue3 - 实现路由 “新开一页“ 进行页面跳转功能,Router 路由跳转时在新窗口打开页面(网站跳转页面时浏览器新开页签打开网页,支持在页面、纯 js/ts 文件中使用,详细示例代码教程)

    网上这方面教程很少,本文提供多种解决方案,适用于任何场景。 本文 实现了在 vue3 项目开发中,当页面跳转时浏览器打开新窗口(新页签)跳转,Router 路由跳转并新开一页教程, 无论您是在普通页面、纯 js/ts 文件中,都可以使用, 如下图所示,当执行路由跳转时浏览器

    2024年02月03日
    浏览(66)
  • 快速搭建Python(Django)+Vue环境并实现页面登录注册功能

    选择一个要存放代码位置,使用cmd进入该位置,然后输入 npm init vue@lastest 创建vue项目 然后输入项目名称,其余都选择NO 创建好项目之后,使用cd命令进入创建好项目的目录 执行 npm install 命令即可创建好一个vue项目 vue项目的启动命令为 npm run dev 使用VsCode打开创建的项目,删

    2024年02月16日
    浏览(36)
  • vue 两步实现点击导航栏,滚动页面到指定位置的功能

    当编写好html部分后,我们创建一个可以获取当前滚轮位置的方法handleScroll(),并在mounted钩子函数中添加该方法的监听事件 创建好监听事件后,我们手动滑动网页右侧滚动条到各版块位置,并打印当前板块的滚轮高度 1、具体思路   ① 获取到当前滚轮位置后,计算其位置与

    2024年02月08日
    浏览(37)
  • vue3插件——vue-web-screen-shot——实现页面截图功能

    最近在看前同事发我的 vue3 框架时,发现他们有个功能是要实现页面截图功能。 最近项目遇到的要求是弹出框上传文件,需要用到页面截图,由于使用的是Vue3的框架于是选择用vue-web-screen-shot组件进行操作。(由于插件是Vue3编写的,所以只适用于Vue3的项目,如果是Vue2的项目,

    2024年02月05日
    浏览(44)
  • vue3+antd——实现App.vue页面实时获取权限+用户信息的功能——基础积累

    之前写过一篇文章关于vue3+antd的框架模板,链接如下:http://t.csdn.cn/9dZMS 下面针对 App.vue 页面实时获取权限+用户信息的功能做一下记录 重要的代码如下: 通过 computed 计算属性进行用户信息的实时监听,用户信息更改时也会重新触发user参数的变化,最终导致user内容保持为最

    2024年02月14日
    浏览(38)
  • Uniapp实现微信小程序跑步运动轨迹、历史轨迹和轨迹回放等功能

    一、先看效果 【跑跑步】微信小程序 二、实现功能         【跑跑步】是一款基于Uniapp开发的微信小程序,主要实现了跑步轨迹记录、历史轨迹、轨迹纠偏、轨迹回放和轨迹排名等功能。室内跑步记录正在开发,还没有发布,主要利用手机加速度传感器实现计步功能。更多

    2024年02月09日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包