javascript
文章平均质量分 94
沉末
这个作者很懒,什么都没留下…
展开
-
移动端H5直播/点播前端入坑简易手册
需求来了,只能H5因业务需要,我们要在微信中使用直播服务。因为业务较小,没有必要花很多钱去采购第三方一条龙服务。那么,我们采用直播推流使用腾讯云的服务,前端自己开发页面。原来考虑过使用微信小程序做,小程序本身提供直播流的组件,使用起来十分方便,且兼容性比较好。但是貌似公司没有相关的多媒体资质,审核无法通过。所以,只能使用H5来解决,页面展示为顶部播放器,下部为留言互动。直播流推流:通过视频/音频采集器与服务器建立连接将实时视频音频传输到服务器。拉流:通过客户端的播放器与服务器建立连接原创 2021-06-08 00:51:25 · 3852 阅读 · 1 评论 -
源码学习之vue-router
使用回顾通常我们使用vue-router会单独创建一个js来写vue-router的逻辑,如 src/router/index.js,并在main.js中引入,例如。// src/router/index.jsimport Vue from 'vue'import Router from 'vue-router'// 启动路由Vue.use(Router)// 路由实例let router=new Router({ routes:[ { //原创 2021-05-13 00:52:46 · 685 阅读 · 0 评论 -
常用的正则表达式
常用的正则表达式(1)匹配 16 进制颜色值var color = /#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})/g;(2)匹配日期,如 yyyy-mm-dd 格式var date = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;(3)匹配 qq 号var qq = /^[1-9][0-9]{4,10}$/g;(4)手机号码正则var phone = /^1[34578]\d{9}$/g;原创 2020-08-18 22:37:50 · 186 阅读 · 0 评论 -
vue图片拖动排序实现
原理:现有一个图片的列表,拖动其中一个图片(触发dragstart),当拖动的图片移动到其他图片的位置(触发dragover),则将拖动的图片从原位置移动到该位置(触发dragend)。dragstart:当用户开始拖动一个元素或者一个选择文本的时候dragstart事件就会触发。dragover:当元素或者选择的文本被拖拽到一个有效的放置目标上时,触发dragover事件(每几百毫秒触发一次)。dragend:拖放事件在拖放操作结束时触发。(我们这里可以不用)(1)图片列表HTML...原创 2020-07-19 12:01:13 · 1390 阅读 · 0 评论 -
发布订阅模式代码实现
发布订阅模式简介:订阅者(Subsciber)通过事件注册(Subscribe)将订阅事件提交到调度中心(Topic),调度中心保存好订阅者的注册信息(回调函数),每当发布者(Publisher)发布事件的时候,通过事件发布(Publish)将发布的消息提交到调度中心,然后调度中心统一处理订阅者注册该事件的消息(执行注册时的回调函数)。show me the code: //创建...原创 2020-04-26 23:14:12 · 2412 阅读 · 0 评论 -
手动实现字符串方法repeat(算法优化)
动动动手动动脑才有提高!分析: string.repeat(n) 方法会返回字符串重复值,如 let a = "abc".repeat(2),返回的是 “abcabc”。常规方法: 采用for循环,每次累加n次初始值,则获得最终结果。这种方法简单易懂,新手都会。缺点:时间复杂度为o(n),有很大优化空间。优化思路:1. 每次累加前一次的结果,如 第一次累加初始值得到 ‘abca...原创 2020-04-25 14:20:33 · 885 阅读 · 0 评论 -
手动实现一个简单双向绑定——基于Object.defineProperty(vue2.X双向绑定原理)
原理分析:vue利用了Object.defineProperty()这个方法,重新定义了对象获取属性值(get)和设置属性值(set)的操作来实现的。Object.defineProperty()方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。该方法详情参见MDN:https://developer.mozilla.org/zh-CN/docs/Web/J...原创 2020-04-25 13:43:04 · 242 阅读 · 0 评论 -
手动实现Array.splice函数
参数分析:1. 第一个参数start: 起始位置。数字类型2. 第二个参数num:截取长度。数字类型3. 第三个及更多参数: 需要插入的元素。任意类型原理分析:1. 截取长度等于插入数据长度,获取截取的位置的元素,并修改原数组对应位置的数据2. 截取长度大于插入数据长度,截取后数组会变短,因此先获取截取的元素并插入新元素,然后数组未修改的数据往前挪动(从前往后),最后缩短数...原创 2020-04-25 13:20:25 · 443 阅读 · 0 评论