自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 TS中typeof和keyof

一个最基本的keyof用法如下,我们通过keyof Person得到一个PersonKeys类型,它是一个联合字面量类型,包含了Person所有的属性。你可能已经知道,typeof 运算符为你提供对象的类型,上面例子中 Person interface,我们已经知道它的类型,所以我们只需要在 Person 上使用 keyof 操作符。这里 ColorsEnum 在运行时作为一个对象存在,不是一个类型,所以,我们需要一起使用 keyof typeof 这两个操作符,像下面代码展示的一样。

2024-01-11 14:17:04 438 1

原创 基于MSE实现web前端视频预加载

媒体源扩展 API(MSE) 提供了实现无插件且基于 Web 的流媒体的功能。使用 MSE,媒体流能够通过 创建,并且能通过使用 和 元素进行播放。● 前半部分的 video/mp4 表示这是 mp4 格式的视频;● 后半部分的 codecs 描述了视频的编码信息,它是由一个或多个由 , 分隔的值组成,其中每个值又由一个或多个由 . 分割的元素组成:○ avc1 表示视频是 AVC(即H264)编码;

2024-01-10 10:34:34 1155

原创 Hybrid混合开发和JSBridge的原理

App目前主要分为三类,分为Web App、Hybrid App、 Native App。混合开发(即Hybrid App)其实是一种开发模式,它混合使用了Native和Web技术开发来实现同一个应用,把Native开发和Web开发的优点结合了起来。接下来,我们先来对比一下,原生和H5的优缺点是什么吧:主要原理就是将 APP 的一部分需要动态变动的内容通过 H5 来实现,通过原生的网页加载控件 WebView (Android)或 WKWebView(iOS)来加载H5页面优点:缺点:想要完成这种Hyb

2023-11-02 17:35:43 179

原创 TinyMCE富文本编辑器

在了解TinyMCE富文本编辑器之前,我们先来了解一下什么是富文本编辑器吧。富文本编辑器是一种用于创建和编辑富文本内容的工具或应用程序。富文本内容是指包含文本、图像、链接、样式和其他格式化元素的内容,允许用户以更具交互性和美观性的方式编辑文档或文本。人话就是,富文本编辑器允许用户编写文章时,给文字以各种样式,也能进行各种格式化操作和图片链接的插入。可以让一篇文章更加的美观。TinyMCE上传完图片后,图片的大小默认为原图片的大小例如打开控制台可以看到图片的实际宽高。

2023-10-12 21:43:28 420

原创 JS数据结构Map,和Object,WeakMap的区别

主要区别在于 Map 可以使用各种键类型,而 WeakMap 只能使用对象作为键,并且对于键的垃圾回收行为有不同的处理方式。:如果你把对象的key写为数字类型,JavaScript 在处理这种情况时会将数字键隐式转换为字符串,比如,然后用obj[num]来调用,但是不建议在把对象的key写为数字。打印结果可以看出,对象的key是按照其ascode码来排序的,而map是按照插入顺序进行排序的。常用于创建普通的数据结构,通常作为字典或哈希表使用,但键必须是字符串或 Symbols。

2023-10-07 14:22:33 129

原创 前端设计之——双token设计

自此就完成了token的无痛刷新,在用户访问网站时,用户对于accessToken的刷新是没有体感的,只会在一两周的时间间隔refreshToken也过期的时候进行一次登录操作,就可以正常访问网站了,即降低了用户实际accessToken被劫持的风险,又提升了用户的体验。token是为了防止用户信息传来传去导致被劫持,但是假如token没有过期时间或者过期很长,那么显然token被劫持还是不安全的,token就失去了意义。这时就需要双token来达到无痛刷新token的效果。

2023-10-05 16:02:26 426

原创 github关联远程仓库,上传代码(简单版)

因为我们已经连接了远程仓库,所以我们依次执行。:可以把clone下来的那个文件夹删了。完成这三步就可以确定创建这个仓库了。此时我们验证发现已经连接远程仓库。:git命令也可以在黑窗口执行。

2023-09-27 14:57:36 55

原创 javaScript——json字符串详解

JSON 字符串(JSON String)是一种特定格式的文本字符串,用于表示数据。JSON 是 JavaScript Object Notation 的缩写,它是一种轻量级的数据交换格式,通常用于将数据从一个应用程序传输到另一个应用程序,或将数据存储在文件或数据库中。

2023-09-09 16:11:28 4396

原创 JS数据结构——Map

JavaScript 的对象(Object),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串。

2023-09-08 22:28:11 836 1

原创 JS数据结构——Set(集合)详解

Set类似于数组,但是成员的值都是唯一的,没有重复的值。也就是说它是一系列无序,没有重复数值的数据集合。很多时候我们把Set叫做集合,但是,Set可以是集合,集合不一定是Set。

2023-09-08 08:46:07 9383 1

原创 Vue3 reactive丢失响应式问题

使用 reactive 定义数据时,使用对象包含键值对的形式,那么就会避免重新赋值的问题。然后在 ‘getCategory2’ 方法中将data赋值给 a。可以看到赋值前赋值后都是proxy对象,所以没有失去响应式。我们定义一个 a 并用reactive将其变为响应式数据。赋值前的a是proxy对象,即拥有响应式。复制后的a变成普通对象,所以失去响应式。像这样定义a,赋值也不会失去响应式。打印赋值前的a赋值后的a可以看到。

2023-07-28 10:36:32 252 1

原创 vue前端双token源码与流程图

双token设计的意义其他文章说的很清楚来了,这里就不再重复了,直接附上源码。封装的token方法。

2023-07-19 22:07:12 213

原创 gitee创建仓库与上传,拉取代码(步骤详解)

要想使用gitee必须先安装git(如果已经安装过了可以跳过这一步)git安装这里就不详细过程了,主要讲解仓库的创建和上传代码的步骤。7,同步远程和本地仓库(如果远程仓库为空,可以跳过这一步)如果遗忘自己的用户名和电子邮箱,可以输入以下代码进行查询。9,回到页面刷新,就可以看到文件已被上传到远程仓库。8,将本地仓库中的文件推送至指定的远程仓库中。4,添加项目目录下所有文件至本地仓库。1,登录已经创建好的gitee仓库。1,准备好要上传代码仓库的文件。解决方法,同步远程和本地仓库。2,在要上传的目录下打开。

2023-07-08 16:32:43 2547 1

原创 【JS】Array.from 用法

Array.from:允许在 JavaScript 集合(如: 数组、类数组对象、或者是字符串、map 、set 等可迭代对象) 上进行有用的转换。什么意思呢?就是允许你把map,set,字符串这类不是数组解构的数据,直接转换为数组保存。

2023-05-20 11:15:09 316

原创 【JS】字符串常用的20个方法

/ lastIndexOf(str, start) 方法返回指定文本在字符串中最后一次出现的索引, 如果未找到,则返回-1。//“Start”是一个可选参数,指定字符串中开始搜索的位置, 默认值为string.length-1。// 5。

2023-05-18 17:27:33 364

原创 [JS算法]142.环形链表II

这样的话,如果链表无环则快指针不会追上慢指针,如果链表有环则快指针一定能追上慢指针为什么这样说呢?其实大家想一想这个情况是不存在的,因为在位置上可以等价于慢指针不动,然后快指针一个节点一个节点地追慢指针,所以快指针是一定会追上慢指针的。则慢指针走过的距离为 x + y 快指针走过的距离为 x + y + n*(y + z) (n为快节点在环中绕的圈数)因为快节点走过的距离为慢指针的两倍则有 2x + 2y = x + y + n*(y + z)所以这个问题就可以转化为,快指针是否和慢指针相遇。

2023-05-07 16:02:45 155

原创 [JS算法]209. 长度最小的子数组

滑动窗口就是不断地更新子序列的起始位置和终止位置,从而得到我们想到的结果,过程如图所示。这个暴力解法在力扣可以ac,因为也进行了一定的判断,减少了循环的次数。遍历出所有子序列,选出符合条件的最小子序列。图片引用于代码随想录。

2023-04-16 17:15:43 145

原创 闭包的理解

官方解释一个函数对周围状态的引用捆绑在一起,内层函数中访问到其外层函数的作用域人话解释简单理解:闭包 = 内层函数 + 引用的外层函数变量就是一个函数引用了,它的父级或父级以上的变量,那我们称这个变量和这个函数整体为一个闭包简单实例let i = 0;例子中 fn 函数访问了父级变量 i 形成闭包。

2023-04-08 10:22:55 89

原创 JS数组篇详解

说明了JS中数组的特殊点,并列举了JS种数组的API

2023-02-26 09:44:07 607

原创 【力扣】162. 寻找峰值

为什么说峰顶一定在右边呢?因为题意说边界是-∞,最坏的情况不就是右边一个比一个大直到边界那个肯定是峰顶。最好的情况就是nums[mid + 1]就比它右边那个大了,也就是峰顶了。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。大家可以想一想,nums[mid]肯定不是封顶了,比如第二种情况nums[mid + 1]就比它大了,那么。你可以假设 nums[-1] = nums[n] = -∞。此时可以肯定的是峰值肯定在 mid 的右边。此时可以肯定峰值肯定在 mid 的左边。

2023-02-07 19:23:34 176

原创 【力扣】34. 在排序数组中查找元素的第一个和最后一个位置

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。

2023-02-07 15:11:44 114

原创 javaweb总结

javaweb总结

2022-11-11 21:19:43 226

原创 Vue阶段复盘总结

Vue重要知识点

2022-11-11 20:59:55 116

原创 【javaweb】图书管理系统实现教程及代码分享

javaweb实现的图书管理系统

2022-11-10 15:45:45 859

原创 todolist——基于vue2实现及源码分享

基于vue实现todolist

2022-11-09 17:20:53 451 2

原创 todolist——基于jQuery实现教程及代码分享

基于jQuery实现的todolist

2022-11-09 09:53:31 237

原创 todolist——JS实现教程及代码分享

基于JS实现的todolist小案例

2022-11-09 09:00:30 913

原创 js中三种for循环(含案例分析)

vue三种for循环,区别,作用

2022-11-05 11:24:29 17609 2

原创 vue脚手架报错:“Component name “***“ should always be multi-word”解决方法

“Component name “***“ should always be multi-word”解决方法

2022-11-01 16:12:10 19923 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除