IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> rrweb学习案例-demo -> 正文阅读

[JavaScript知识库]rrweb学习案例-demo

昨天在抖音上刷到了一个up主分享的一个好玩儿的东西,叫做rrweb,它可以帮助我们录制网页视频/快照网页内容,这样我们可以清晰的看到记录的用户行径,便于优化我们的系统。

文档地址:热门极速下载/rrweb

下面是我进行学习的一个使用案例

首先我选择了HbuilderX快速创建一个空的vue项目。

前端组件选择了 ant-design-vue ,很久没用了,熟悉一下,虽然写不了几行代码哈哈。

1、main.js引入ant-design-vue 相关依赖

import Vue from 'vue'
import App from './App.vue'


import Antd from 'ant-design-vue'
import 'ant-design-vue/dist/antd.css'


Vue.config.productionTip = false
Vue.use(Antd)
new Vue({
  render: h => h(App),
}).$mount('#app')

2、编写测试页面 、App.vue 加入rrweb、rrweb-player依赖

下面直接贴代码了,

rrweb只包含了录制,回放等功能

rrweb-player 作为播放器UI来使用

<template>
  <div id="app">
			<div >
				<a-row >
					<a-col :span="8">
						<HelloWorld msg="rrweb 测试用例"/>
						<a-button type="primary" ghost @click="startRecord">
							  录制
						</a-button>
						<a-button type="danger" ghost @click="stopRecord">
							  停止录制
						</a-button>
						<a-button type="primary" ghost @click="doReplay">
							  回放
						</a-button>
					</a-col>
					<a-col :span="8">
						<a-avatar :size="avatarSize" src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fww2.sinaimg.cn%2Fmw690%2F006T846Aly1gtpt61xg2nj31jk2bcwo7.jpg&refer=http%3A%2F%2Fwww.sina.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1634540023&t=f6071ad6cc906d41f4a91862d213041a" />
					</a-col>
				</a-row>
				
			</div>
			<div>
				<a-row >
					<a-col :span="8">
						<a-textarea placeholder="请输入多行文本" v-model="text" :rows="4" />
					</a-col>
				</a-row>
				<a-row >
				
					<a-col :span="8">
						 <a-slider id="test" :default-value="30" @change="handleAvatarSize" :disabled="disabled" />
					</a-col>
				</a-row>
				
			</div>
		<a-card >
		</a-card>
		<div id="doPlay" style="width=600px;height=500px;" class="margin-8">
			
		</div>
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue';
import * as rrweb from 'rrweb';
import rrwebPlayer from 'rrweb-player';
import 'rrweb-player/dist/style.css';
let events = [];
export default {
  name: 'app',
  components: {
    HelloWorld,rrweb,rrwebPlayer
  },
  data(){
	  return {
		  text:'',
		  user:{},
		  options:{
			  root: null,
		  },
		  avatarSize:30,
		  
	  }
  },
  methods:{
	  //开始录制
	  startRecord(){
		  
		  		  rrweb.record({
		  		      emit(event) {
		  		          // 用任意方式存储 event
		  		          console.log(event);
		  		          events.push(event);     
		  		      },
		  		  });
	  },
	  //停止录制
	  stopRecord(){
		  let stopFn = rrweb.record({
		    emit(event) {
		      if (events.length > 100) {
		        // 当事件数量大于 100 时停止录制
		        stopFn();
		      }
		    },
		  });
	  },
	  //回放
	  doReplay(){
		  	location.href = "#doPlay";
		  const dataList = this.text.split("\n")
		  console.log(dataList)
		  for (let item of dataList) {
		  	this.user = {
				title : item
			}
		  }
		  console.log(this.user)
		  /* this.options.root = document.getElementById("doPlay")
		  const replayer = new rrweb.Replayer(events, this.options);
		  replayer.play(); */
		  
		 const replayer = new rrwebPlayer({
		    target: document.getElementById("doPlay"), // 可以自定义 DOM 元素
		    // 配置项
		    props: {
		      events,
		    },
		  });
	  },
	  handleAvatarSize(e){
		  this.avatarSize = e
	  }
  }
  
}
</script>

<style>
.margin-8{
	margin: 8px 0;
}
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

不方便制作gif,简单截几个图看效果吧。

?倍速,快进,全屏应有尽有。

?以上只是简单的做了个快速使用案例。想要更系统的学习,还要看一下文档介绍,里面有一些其他的方法或许能盖满足你的需求。

就这样,回家过中秋了。

后面有时间看看怎么导出视频文件。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 07:54:08  更:2021-09-19 07:55:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:29:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码