自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 visual stdio 2019环境配置及项目创建教程

目录一. 下载法一:到电脑自带的微软商城搜索visual studio 2019(为防止网页搜索下到病毒)法二:Visual Studio 2019 版本https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes二. 环境配置汉化工作负荷下载修改三. 创建项目一. 下载法一:到电脑自带的微软商城搜索visual studio 2019(为防止网页搜索下到病毒)下好之后出现的是.

2022-02-03 22:07:19 3619

原创 svg转base64时遇到【无法在“Window”上执行“btoa”:要编码的字符串包含超出 Latin1 范围的字符】问题

今天在做svg预览时遇到了一个报错意思是:无法在“Window”上执行“btoa”:要编码的字符串包含超出 Latin1 范围的字符查了很多博客都没有很好的解决,所以写这篇博客记录一下我最终的解决方式。

2024-11-15 16:19:57 267

原创 深入了解 Vite 中的手动分包技术

分包是将应用程序的代码拆分成更小、更易管理的块,以便在需要时动态加载。通过减少初始加载时间,我们可以大幅提高应用性能。在 Vite 中,手动分包就是通过配置,明确地指定哪些模块应该分入一个包。比如说我们对代码进行修改后重新打包,会导致文件指纹发生变化,从而引发一些潜在问题,我们可以把外部引入的模块放在同一个包当中,将开发代码放在一个包当中,这样子修改后重新构建就只会修改开发代码所在的包。

2024-11-04 18:06:06 595 2

原创 position: sticky 粘性定位

今天写项目时遇到一个问题,页面中的锚点设置了绝对定位,但当整个页面往下滚动时,锚点会飞上去,这里需求是当页面整体未滚动时锚点固定定位在左侧顶部,但当整个页面滚动时锚点需要吸顶。为了实现这个需求,我们可以使用position属性的sticky属性值。最终我设置float:left;实现了锚点区域浮动靠左(不撑开中间列表的位置)且与左侧有40px的边距(完全靠左不美观)top: 10px;实现粘性定位。

2024-10-22 18:29:04 257

原创 postman遇到跨域问题时如何解决

之前的几个项目开发中我都是使用postman测试接口的,当时我只记得使用postman时遇到过身份校验问题,因为项目中使用了jwt校验用户身份,在postman中需要手动配置一下Authorization。所以在 Postman 中,这种限制并不存在,因为它是独立的客户端,与浏览器安全策略无关。我们可以使用 Postman 来测试和调试跨域请求,而无需担心跨域限制!跨域限制是浏览器的安全机制,用于保护用户从网页加载的数据。Postman 不受浏览器的同源策略限制,所以。前几天面试时遇到了一个坑!

2024-10-21 14:30:46 300

原创 DOMParser学习

DOMParser 是一个用于解析包含 HTML 或 XML 的字符串,并将其转换为一个文档对象的接口。它可以用于在浏览器环境中动态解析和操作 HTML 或 XML。如果想通过DOMParser修改svg标签的颜色。

2024-10-14 15:01:10 274

原创 本页的事件生命周期的注意!

这里举个例子,我在项目中某个页面对用户的粘贴事件进行了监听,原本我直接全局的对粘贴事件进行了全局注册,并没有考虑他的生命周期问题,修改之后,我将该事件封装成方法,并在页面加载和销毁时同步进行创建和销毁。这符合常见的编程原则,即资源应在使用前分配,在不再需要时释放。确保只在需要时注册,并在不需要时销毁,可以提高应用的整体性能。在实习工作中,mentor提示“本页的事件,最好在挂载的时候注册全局事件监听, 卸载的时候销毁”1. 内存管理:在挂载时注册事件监听器,并在卸载时销毁,可以。

2024-10-14 14:41:09 294

原创 同一组件不同地方需要深度穿透样式

这里重要需要明白一件事是,虽然他们用的是同一个组件,但在渲染层面上,他们是不同的两个个体,如果我们需要分别进行样式穿透,可以为它们分别绑定不同的类class,再在其基础上通过:deep()样式穿透,即可达到分别进行样式穿透的目的。在使用各种组件库时,某些组件的样式细节(默认样式或提供的可选属性)通常无法满足我们的需求,这时候我们需要进行样式穿透以达到自定义修改的目的。这个简单的例子中,`button-primary` 和 `button-secondary` 被用来分别定制两个 Button 组件的样式。

2024-10-14 14:34:25 173

原创 【刷题日记】43. 字符串相乘

其实就是大数乘法题,这道题用草稿纸演练一下,其实很好找到方法,模拟大数乘法即可。需要注意的是+进位和迭代值,还有注意向下取整和去除前导0(容易遗漏)。去除前导0的时候还要注意如果全是0,除完了的情况下要手动赋值答案为‘0’。【一直判断pos【0】是否为0,如果是则shift出去。:我们可以倒序,也可以直接按照数字来倒序遍历,将当前位字符。,为了方便加减,设置每一个位置的初始值为 0。5.最后返回结果,注意要判断答案的长度,如果。:在完成所有乘法后,可能会在。将数组转为字符串并返回。:计算当前位置的总和。

2024-09-20 22:20:33 214

原创 【刷题日记】15. 三数之和

指的是同一个位置的数不能重复出现在三元组中,只是下标不能相同,但不是值不能相同。三数之和会更加复杂一点,且这道题还需要考虑避免重复答案!所以需要去重的是最终的组合,而不是值。两数之和可以用巧思也可以用map。

2024-09-20 21:41:58 477

原创 【刷题日记】螺旋矩阵

这个是一道模拟题,但我记得我大一第一次做这道题的时候真的就是纯按步骤模拟,没有对代码就行优化,导致代码写的很臃肿。具体实现细节可以看我代码里的注释。有这么几个地方可以改进。

2024-09-17 18:02:48 255

原创 刷题日记【160. 相交链表】

b,则指针分别遍历完本身链表后,两个指针不会同时到达链表的尾节点,然后指针 移到另一个结点头部继续移动,在指针 pA 移动了 a+c+b 次、指针 pB 移动了 b+c+a 次之后,两个指针会同时到达两个链表相交的节点,该节点也是两个指针第一次同时指向的节点,此时返回相交的节点。设headA 的不相交部分有 a 个节点, headB 的不相交部分有 b 个节点,两链表相交部分有 c 个节点。=n,两个指针不会同时到达两个链表的尾节点,到另一个头部后继续遍历,在都移动了 n+m 次后,两个指针会。

2024-09-17 01:09:25 523

原创 如何把我另一个分支上的commit拿过来

在开源过程中,每一次PR都是要经过严格的review的,这期间可能会进行多次修改,补充提交,而且这一般来说不是一个很迅速的过程,此时我们可能会先往后进行开发。我一般会把项目分模块逐步建立分支,当前一个pr合并完毕后我再基于最新代码创建分支,把我先前开发好的commit拿过来提交。这个过程非常重要的一个命令就是git cherry-pick,该允许将特定的commit应用到当前分支上。

2024-09-11 16:39:50 722

原创 GPG配置不上未解之谜!!

需要注重local和global两边的配置,只有一边配置好大概率还是会出问题!git config --global --list 查看全局配置。请保证当前项目配置无误。

2024-09-11 16:33:22 119 1

原创 对已经提交的commit补充gpg签名

PS:最近这半年忙于实习开源和面试,大部分产出博客转到了语雀私人空间中,很多内容不在csdn上进行发布了,最近打算整理下自己的笔记,发布一部分到csdn上。这篇文章写作背景是,参与开源项目需要对commit加上gpg签名,我在第一次提交时没有注意到这一点,所以后续gpg配置好之后需要将之前的commit进行补充签名,最近也有人来问我如何补交,整理了一下步骤作为此篇博客内容。【另外,在配置gpg上我也遇到过很麻烦的问题,当时定位问题花了很久,网上也没找到解决办法,预计在下一篇博客中发出。

2024-09-11 16:30:12 494

原创 SFC CSS 功能:深层选择/插槽选择器/动态绑定

实际值将被编译为散列 CSS 自定义属性,因此 CSS 仍然是静态的。自定义属性将通过内联样式应用于组件的根元素,并在源值发生变化时进行响应式更新。,因为它们被视为传入它们的父组件所拥有。要明确定位插槽内容,请使用。不受范围样式的影响,但您仍然可以使用深度选择器来设置它们的样式。标签支持使用 CSS 函数将 CSS 值链接到动态组件状态。默认情况下,范围样式不会影响 渲染的内容。“深入”,即影响子组件,则可以使用。如果您希望样式中的选择器。创建的 DOM 内容。

2024-09-06 10:51:32 674

原创 记录开源项目中点击空白区域关闭一二级菜单的问题

今天在开发TinyEngine华为低代码引擎开源项目时,我遇到了一个细节的问题:原本是点击标题显示菜单,再次点击标题或点击空白区域关闭菜单。中国没错的,然后呢,这里我手动实现了一个二级菜单,二级菜单内部点击是会切换该选项后面跟着的图标的,我希望点击完之后只是图标变化,但点击菜单内部时菜单也会关闭,虽然也能用,但很影响用户体验,这不是我期望的行为。简单的描述一下问题就是:在项目中,我实现了一个点击标题显示菜单的功能,并在点击空白区域时关闭菜单。然而,点击菜单内部时菜单也会关闭,这导致用户体验不佳。

2024-07-18 16:42:56 833

原创 谈谈检测浏览器类型

前几天被问到如何检测浏览器类型,我突然发现我对此并不了解,之前的项目中也没有使用到过,只隐约记得通过一个自带的方法即可获取。所以今天特意来仔细补习一下。1.正则表达式2.引用外部库3.判断浏览器的其他特性。

2024-07-01 22:36:54 959

转载 【转载】开源PR教程---我要提交 PR,怎么上手?

最近在参与开源项目,对于pr流程还不太清晰,看到了一篇不错的介绍文章,这篇文章摘取重要的部分转载一下。文章末尾有标注原文。

2024-06-29 22:27:49 504

原创 刷题日记6.25

操作,通常用于加密、校验和其它计算任务中。异或操作符在JavaScript等编程语言中的表示为`^`。对于两个操作数的每一对对应的比特位,只有当它们。注意题目要求实现线性时间复杂度算法解决,所以就不要想着排序或者用set数组之类的了。这道题考察的是异或算法,也是异或算法的一个典型作用例子。异或(XOR)是一种常用的。所以题目的做法一目了然。

2024-06-25 01:45:04 337

原创 刷题记录6.24

438. 找到字符串中所有字母异位词这道题乍一看感觉很复杂。因为 异位词指由相同字母重排列形成的字符串,包括相同的字符串,那么就会有很多种组成,增加题目的复杂性。对于这个我们可以转化成计算字母出现的频率,如果频率一致即符合要求。这道题的思路:滑动窗口根据题目要求,我们需要在字符串 s 寻找字符串 p 的异位词。因为字符串 p 的异位词的长度一定与字符串 p 的,所以我们可以在字符串 s 中构造一个长度为与字符串 p 的长度相同的,并在滑动中维护窗口中每种字母的数量;

2024-06-24 23:46:41 895

原创 深入理解 JS/TS 中的 filter 方法及其布尔值筛选功能

filter 方法是数组对象的一个内置方法,用于创建一个新数组,其中包含所有通过指定函数测试的元素。(filter 方法会遍历数组中的每个元素,并将那些使测试函数返回true的元素组成一个新的数组。❗再三强调,会返回一个新的数组哦!!!但使用了filter不会对原数组产生影响。

2024-06-19 11:41:44 1345

原创 用h()给渲染的组件传递参数

而我们只能在Downloading组件中去监听进度条的进度,而关闭提示框又需要调用notification.close(key),所以我采取的方案是,渲染进度条时,将当前提示框的key传递给Downloading组件,当Downloading组件监听到进度为100时,调用notification.close(key)。项目中进度条的实现是通过Vue3的 h()函数将进度条组件Downloading和自定义进度条函数process渲染在notification中的。,不会作为普通的 prop 传递给组件。

2024-06-13 15:42:15 547

原创 为什么defineComponent组件名字和文件名字不能一样

这可能是因为工具或框架在处理组件时依赖于组件名称和文件名的唯一性,如果它们相同,则可能会引起冲突或错误。但是在Vue 3中,使用`defineComponent`来定义组件时,Vue 不再使用 `name` 选项来指定组件的名称,而是推荐使用 `filename` 选项。今天在开发新组件时,在使用defineComponent定义组件时,把name写成了文件名的首字母大写法导致项目一直报错。找了很久才知道是名字的问题。这个时候我们在定义组件时,name一定不能与文件名相同,否则在调用组件时就会发生冲突。

2024-05-20 11:53:23 403

原创 vscode的git插件使用教程

虽然git的命令我没有滚瓜烂熟,但vscode的git插件是尊嘟很好用啊,都被我用烂了。在网上看见一个讲的很不错的插件教程。转载一下。跳过了vscode安装过程。

2024-05-09 17:06:15 5890

原创 Week1

好久之前写的算法题解!!!一直忘记在草稿箱里了,既然写了就发出来吧!

2024-04-26 11:42:47 828

原创 学习总结!

好久之前的学习总结!!!一直忘记在草稿箱里了,既然写了就发出来吧!

2024-04-26 11:41:45 237

原创 2022.8.22总结

好久之前的学习总结 忘记发了一直在草稿箱,写了就发出来吧!

2024-04-26 11:41:03 231

原创 理解控制反转

当需要实现不同操作时,用户和程序员都无需修改,只需要修改xml配置即可。通过set注入,改变ref来改变使用的接口实现类。而测试函数中只需要写这个无需改变。

2024-04-26 11:39:59 274

原创 vue3+setup中监听路由变化改变样式

在Vue 3中,有一个非常方便的API可以观察响应式数据的变化,即watchEffect。watchEffect是一个新的API,可以自动跟踪响应式数据的变化,并在其发生变化时执行回调函数。由于项目中数据大屏页面的背景颜色不同于其他页面,而面包屑导航直接设置在根页面中,底板也直接设置在根页面中,所以今天还学习了vue3+setup中如何监听路由变化来改变根页面的背景颜色样式。在本例中,我们将使用watchEffect和useRoute来观察路由的变化,并更新页面的样式。已经成功实现,这里写个博客记录一下。

2024-04-26 11:37:43 467

原创 【清理草稿箱】学习总结

好久以前写的学习笔记了...当时写了忘记发 今天清理草稿箱才发现,既然写了就发出来吧!

2024-04-26 11:36:33 372

原创 GraphQL速学笔记

在GraphQL中,客户端可以通过发送查询语句来精确地请求需要的数据,而不是像RESTful API那样只能获取固定格式的数据。3. 类型系统:GraphQL具有强大的类型系统,定义了数据模型和查询语句的结构,使得开发者可以在开发阶段发现和修复问题。4. 自描述性:GraphQL API可以提供自描述性的文档,客户端可以通过查询语句来探索API的功能和数据模型。1. 精确的数据获取:客户端可以精确地指定需要返回的数据字段,避免了过度获取不需要的数据。GraphQL 入门 | GraphQL。

2024-04-24 11:31:50 1203

转载 【转载】tsconfig.json常用配置

如何生成tsconfig.json文件。

2024-04-23 16:11:18 1086

原创 px、em、rem区别介绍

任意浏览器的默认字体高都是16px。为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。比如说你在#content中声明了字体大小为1.2em,那么在声明p的字体大小时就只能是1em,而不是1.2em, 因为此em非彼em,它因继承#content的字体高而变为了1em=12px。

2024-04-23 16:10:06 765

原创 TypeScript学习8:泛型

引入需求如果我们不使用泛型但是如果我还需要别的类型参数呢,比如bool值等,不断像上面这样创建类似的代码会让代码非常丑且冗余所以这里我们需要用到,简而言之,泛型就是把类型当做和Java中的泛型原理是一样的!那么我们使用泛型来实现上面这个需求就很简单了只需要在函数名后面加上尖括号就可以使用泛型了(这里指定T为number类型)很简单,我们可以定义多种泛型。

2024-04-23 14:58:49 450 1

原创 TypeScript学习笔记7-枚举

如果中断了,那么下面的就从中断的地方继续增长。如果是字符串,那么定义的时候就要全部写上。主要作用就是节省因为枚举带来的性能消耗。如果是纯数字,下面的会进行自动增长。

2024-04-23 12:03:20 397

原创 RouteRecordRaw

1.Component: 表示一个 Vue 组件类型,这个类型来源于Vue。2.: 表示一个对象,键是字符串类型,值是组件类型 `Component`。这个类型来源于TypeScript。2.5.Dictionary:Dictionary不是 TypeScript 中的内置类型,而是一种常用的自定义类型约定。在 TypeScript 中,Dictionary通常用于表示一个键值对对象,其中键是字符串类型,值可以是任意类型。Dictionary是一个泛型类型,它接受一个类型参数T,表示值的类型。

2024-04-23 11:03:52 2192 2

原创 TypeScript学习笔记6-函数类型

它允许你在编写函数时指定参数的类型和返回值的类型,从而增加了代码的可读性和可维护性,同时还能在编译时进行类型检查。(greeting的参数类型是string,默认值是Hello,punctation的参数类型是stiring,但其背后紧跟了一个?【注意:如果有可选参数,你不能直接在函数体种直接运用可选参数,必须进行判断,比如if判断可选参数是否为undefined】这里的类型还支持更加复杂的类型,1比如可选参数,默认参数和剩余次数。在函数类型提示中,参数和返回值的类型声明都是。

2024-04-10 23:17:46 269

原创 TypeScript学习笔记5-类型别名

它允许你为现有的类型提供一个更具描述性的名称,从而增强代码的可读性和可维护性。类型别名通常与联合类型(Union Types)或交叉类型(Intersection Types)结合使用,以创建更复杂的类型。2. type 可以定义 联合类型 和 可以使用一些操作符 interface不行。也可以使用联合类型命名一个可能是string也可能是string[ ]的类型。在 JavaScript 中,类型别名是一种自定义类型的方式,通过关键字。这里也可以使用接口中的描述属性比如?2️⃣更常使用到的地方是,给。

2024-04-10 22:51:01 351

原创 TypeScript学习笔记4-接口

在TypeScript中,接口用于定义对象的结构和类型。它是一种抽象的概念,用于描述对象应该具有的属性、方法和行为。

2024-04-08 00:58:07 247

操作系统复习题(1-4章)

操作系统复习题(1-4章)

2024-01-06

空空如也

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

TA关注的人

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