自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

woyebuzhidao321的博客

前端相关技术

  • 博客(223)
  • 资源 (2)
  • 收藏
  • 关注

原创 2023 electron最新最简版windows、mac打包、自动升级详解

这里我将讲解一下从0搭建一个electron最简版架子,以及如何实现打包自动化更新之前我有写过两篇文章关于electron框架概述以及 常用api的使用,感兴趣的同学可以看看。

2023-11-05 18:54:47 7091 4

原创 nodejs 高级编程-通信

利用一些 node 内置的核心模块,配合着一些第三方工具包,实现自己的命令行工具,使可以调用相应的命令,在指定的目录下来启动一个 web 服务,接着就可以使用浏览器来访问当前目录下的所有静态资源。已经存在的 serve 工具的操作是如果我们访问的是一个目录,它就会把它下边的所有资源名称展示出来,放在浏览器所对应的界面当中进行显示,这里也这样操作。这里的主要逻辑都放在 main.js 里在www.js 里直接引入就行,也可以直接放在 www.js 里,比较臃肿就不便于维护了。明确目标主机IP地址。

2023-07-10 19:34:08 1210 2

原创 nodejs高级编程-核心模块

01 打开 a 文件,利用 read 将数据保存到 buffer 暂存起来* 02 打开 b 文件,利用 write 将 buffer 中数据写入到 b 文件中*/ let buf = Buffer . alloc(10) // 01 打开指定的文件 /* fs.open('a.txt', 'r', (err, rfd) => {// 03 打开 b 文件,用于执行数据写入操作// 02 从打开的文件中读取数据// 04 将 buffer 中的数据写入到 b.txt 当中。

2023-07-10 19:33:39 446

原创 vscode多语言实现原理

vscode是默认显示英文,如何使其默认显示中文?跟踪了一段时间其代码,这里做下总结。传统前端 App 多语言最简单的实现可以由一套响应式数据流管理系统来托管多语言文案,切换语言时通过数据流的变化使得界面根据文案重新渲染。但由于 VS Code 架构的复杂性,需要有一套能兼容 Electron 渲染窗口(Chromium)及 Node.js 进程的多语言方案。

2023-07-04 16:34:08 1585

原创 vscode 插件系统的运行机制!

经过处理后的最终数据格式} ... // 点击执行事件 override async run() : Promise < any > {if(!return;// 这里下载 const extension = await this . install(this . extension);

2023-07-01 22:18:29 2325

原创 vscode二次开发之如何扩展插件主体里的vscode对象

}

2023-06-06 17:14:29 835 2

原创 使用Webassembly实现图片压缩

是一种新的编码方式,可以在现代的 Web 浏览器中运行——它是一种低级的类汇编语言,具有紧凑的二进制格式,可以接近原生的性能运行,并为诸如 C/C++、C# 和 Rust 等语言提供编译目标,以便它们可以在 Web 上运行。它也被设计为可以与 JavaScript 共存,允许两者一起工作。

2026-01-03 19:59:21 771

原创 使用Canvas绘制千万行数据表格渲染

这篇文章讲解一份纯 HTML/JS 的 Canvas 表格实现:在浏览器里模拟的滚动与渲染,虚拟滚动映射 + 固定表头 + 时间切片搜索 + 单元格编辑。

2026-01-02 14:11:32 963

原创 虚拟列表进阶-手搓不定高虚拟列表实现

我讲到了定高虚拟列表的实现,这篇文章我将继续讲解不定高虚拟列表实现。

2026-01-01 21:25:09 812

原创 性能优化-手搓定高虚拟列表实现

页面里看起来是一个能顺滑滚动的长列表,但实际上它并没有把 10000 条数据都渲染成 10000 个 DOM 节点;相反,它只渲染“可视区域附近”的几十条,并用一个“幽灵占位层”把滚动条撑到正确的总高度。这就是虚拟列表(Virtual List / Virtual Scrolling)的核心思想。如果直接渲染 10000 个 :而虚拟列表的目标是:无论数据多大,DOM 数量保持在一个小常数级别(比如 30~80 个),让滚动体验接近原生列表。代码中有三个关键容器:滚动了 ,每个 item 高度 ,那么滚到

2026-01-01 19:54:05 1095

原创 Canvas刮刮乐实现详解:从基础绘制到性能优化

使用canvas实现刮刮乐

2025-11-08 10:47:23 788

原创 使用yjs实现协同demo搭建

摘要:本文介绍了基于CRDT算法的Yjs库在多人协同开发中的应用。Yjs通过WebSocket实现数据同步,服务端代码演示了两种创建WebSocket服务的方法。客户端通过Y.Doc创建共享数据结构,使用WebsocketProvider建立连接,并利用awareness模块管理用户状态。示例展示了如何监听数据变化并同步节点操作(如添加、移动节点)。该方案为构建实时协作应用提供了成熟的技术实现,适用于需要多人协同编辑的场景。(150字)

2025-09-28 15:24:25 320

原创 Drawio编辑器二次开发

‌ Drawio (现更名为 Diagrams.net )‌是一款完全免费的在线图表绘制工具,由 JGraph公司 开发。它支持创建多种类型的图表,包括流程图、组织结构图、UML图、网络拓扑图、思维导图等,适用于商务演示、软件设计等多种场景‌drawio的底层是使用mxGraph库。

2025-05-30 20:18:32 2012

原创 运行vscode编辑器源码

距离上次二次开发vscode已经是三年前的事了,当时是1.60.0版本,目前vscode已升级到了1.99.2版本,里面改动很大,最近下载下来了新版源码跑起来看看。

2025-05-18 16:39:03 490

原创 富文本编辑器的第三方库ProseMirror

/ model.ts 文件命名暂时还是以 mvc 模式命名,方便理解,实际中 命名为 schema.ts 更好nodes: {// 整个文档doc: {// 文档内容规定必须是 block 类型的节点(block 与 HTML 中的 block 概念差不多) `+` 号代表可以有一个或多个(规则类似正则)},// 文档段落。

2025-05-06 21:44:53 1072

原创 富文本编辑器核心实现原理浅析1

最近4年左右的时间里业务开发中都有接触编辑器相关的开发工作,最近有时间想总结下相关的知识点。

2025-05-05 14:54:40 443

原创 第一眼就爱上了的node服务端开发框架Nestjs

我们创建一个简单的,用于管理 PostgreSQL 连接。

2025-05-05 12:52:11 1828

原创 鸿蒙开发-HMS Kit能力集(地图服务、华为支付服务)

Map Kit(地图服务)是鸿蒙生态下的一个地图服务,为开发者提供强大而便捷的地图能力,助力全球开发者实现个性化地图呈现、地图搜索和路线规划等功能,轻松完成地图构建工作。Map Kit提供了千万级别的 Poi(Point of Interest,兴趣点)。在地图表达中,一个 Poi 可代表一家商铺、一栋办公楼、一处景点等等。Map Kit在Poi和路网信息展示方面,根据Poi属性信息及区域路网差异,在不同层级比例尺条件下,为用户展示更合适的Poi和路网信息。

2024-12-02 22:03:33 2001

原创 鸿蒙开发-HMS Kit能力集(位置服务、扫码服务、游戏登录)

自定义界面扫码需要申请相机权限,确保应用拥有访问相机的权限。在“module.json5”文件中配置允许使用相机扫码的权限“ohos.permission.CAMERA”,该权限授权方式为“user_grant”,在配置权限时需要描述申请权限原因reason和调用时机usedScene。...// CustomPage.ets 其他方法参见源代码// 自定义界面扫码参数scanTypes: [scanCore.ScanType.ALL], // 扫码类型,可选参数。

2024-12-01 13:27:22 1161

原创 鸿蒙开发-HMS Kit能力集(应用内支付、推送服务)

开发步骤。

2024-11-30 18:48:33 1264

原创 鸿蒙开发-ArkWeb

/ 构造响应数据})''缓存管理在移动应用中起着重要的作用。提升性能:将已访问过的页面、资源等保存在本地,下次加载同样内容直接从本地缓存获取。离线访问:无网也可访问之前看过的页面或资源。节省流量:减少联网依赖,对于网络条件差或流量限制下很重要。Default : 优先使用未过期的缓存,否则从网络获取None : 加载资源使用cache,如果缓存中无该资源则从网络中获取Online : 在线模式Only :离线模式build() {Column() {

2024-11-30 15:59:23 851

原创 鸿蒙开发-应用通知与提醒、axios

旨在让用户以合适的方式及时获得有用的新消息,帮助用户高效地处理任务。应用可发送通知消息,用户在通知栏能查看通知内容,也可点击来打开应用。在发出通知后,使用您之前使用的相同通知ID,再次调用notificationManager.publish来实现通知的更新。如果之前的通知是关闭的,将会创建新通知。将不同类型的通知分为不同的组,以便用户可以更好的管理他们。当同组的通知有多条的时候,会自动折叠起来,避免通知比较多的时候,通知界面比较杂乱,例如当通知栏里有聊天消息通知和商品推荐通知时,我们只需要通过设置字段

2024-11-30 15:58:25 1175

原创 鸿蒙开发-文件与分享

用户文件:所有者是登录到该终端设备的用户,包括用户私有的图片、视频、音频、文档等。系统文件:与应用和用户无关的其他文件,包括公共库、设备文件、系统资源文件等。应用文件:所有者为应用,包括应用安装文件、应用资源文件、应用缓存文件等。应用场景:应用A主动分享文件给应用B,应用B完成文件接收。应用沙箱(虚拟目录,仅应用自己可见)

2024-11-23 22:50:37 622

原创 鸿蒙开发-音视频

可通过AVRecorder的state属性,获取当前状态或使用on(‘stateChange’)方法监听状态变化。开发过程中应该严格遵循状态机要求,例如只能在started状态下调用pause(),只能在paused状态下调用resume()。配置播放参数PlayParameters,并调用play方法播放音频。on(‘loadComplete’)方法,用于监听“资源加载完成”on(‘playFinished’)方法,用于监听“播放完成”on(‘error’)方法,设置错误类型监听。

2024-11-23 12:26:33 1427 1

原创 鸿蒙开发-网络数据访问、应用本地数据保存

用户首选项为应用提供Key-Value键值型的数据存储能力,支持应用持久化轻量级数据,并对其进行增删除改查等。该存储对象中的数据会被缓存在内存中,因此它可以获得更快的存取速度,下面详细介绍下用户首选项的开发过程。常用接口有:保存数据(put)、获取数据(get)、是否包含指定的key(has)、数据持久化(flush)、删除数据(delete)等,后面依次详细介绍接口使用。

2024-11-16 12:44:58 895

原创 鸿蒙-构建更丰富的高级页面

组件内状态: @State子组件接收父组件传播的状态: @Prop子组件接收父组件状态,但可以反馈更改:@Link组件不向特定的子孙组件提供状态:@Provide,子孙接受:@Consume深层属性观察:@Observed / @ObjectLink。

2024-11-16 10:42:19 201

原创 鸿蒙UIAbility

UIAbility 是 HarmonyOS 中一种包含 UI 界面的应用组件,主要用于与用户进行交互。它也是系统调度的基本单元,为应用提供绘制界面的窗口。一个 UIAbility 组件中可以通过多个页面来实现一个功能模块。每一个 UIAbility 组件实例,都对应于一个最近任务列表中的任务。因此,对于开发者而言,可以根据具体的场景选择单个或多个 UIAbility。

2024-11-13 11:52:04 1391

原创 鸿蒙开发基础入门

ArkTS是为构建高性能应用设计的编程语言,语法继承TypeScript,并进行了优化,拥有更强的类型约束ArkTS提供了声明式UI范式,符合移动开发的最新趋势ArkTS摒弃了部分影响运行时的性能的语法,比如Any。取而代之的是显式类型定义或类型推断ArkTS提供了更强的并发编程能力ArkTS兼容JS/TS三方库当界面中有相同结构的模块时,可以封装成一个独立组件。比如每一行代办事项都是由一张图片和一个文本组成。自定义组件用@Component装饰器来声明。

2024-11-10 22:15:23 1153

原创 python学习12 - 大模型提示词-编写 Prompt 的原则1

你应该通过提供尽可能清晰和具体的指令来表达您希望模型执行的操作。这将引导模型给出正确的输出,并减少你得到无关或不正确响应的可能。编写清晰的指令不意味着简短的指令,因为在许多情况下,更长的提示实际上更清晰且提供了更多上下文,这实际上可能导致更详细更相关的输出。

2024-09-21 14:43:54 2285

原创 python学习12-transformer1

这个过程展示了从基于规则的系统到统计方法,再到深度学习和最终的Transformer模型的逐步演进。Transformer的创新在于其能力处理长距离依赖关系,以及高效地在大规模数据集上进行训练,使其成为当今自然语言处理的核心技术。自然语言处理(NLP)的发展经历了多个重要的阶段,直到最终演变成如今广泛使用的Transformer模型。token_type_ids,默认通常全为0,如果要处理2个句子输入,可能会将第一句的token对应为0,第二句对应为1。

2024-09-16 10:47:56 810

原创 python学习11-Pytorch张量与数据处理1

LaTex表达式是一种简单的、常见的一种数学公式表达形式,在很多地方都有出现,相信正在看博客的你会深有体会,LaTex表达式不难,甚至说很简单,但是对于没有没有接触过得小伙伴来说,会非常费脑,复杂的表达式到底该如何书写呢?在此需要注意的是:LaTex表达式默认的是 “ _ ” “ ^ ” 之后的一位才是上下标的内容,对于超过一个字母的上下标需要使用 { } 将它括起来,比如。就是它的LaTex表达式,同样的对于需要下标的同样使用下划线表示 “ _ ” , 对于多个字符组成的需要添加 { } 将其包括。

2024-09-07 16:11:17 1130

原创 python学习11-Pytorch环境安装与模型搭建

CUDA(Compute Unified Device Architecture)是一种并行计算平台和编程模型,旨在利用 NVIDIA GPU(图形处理单元)的强大并行计算能力。它允许开发者使用 GPU 进行通用目的的高性能计算,而不仅仅是图形渲染。为什么要使用 CUDA?使用 CUDA 有以下几个优点:并行计算: GPU 具有大量的处理单元和内存带宽,适用于处理大规模的并行计算任务,如深度学习的神经网络训练。加速深度学习: 深度学习中的大多数计算操作都可以受益于 CUDA 的并行性。

2024-09-01 22:30:04 2421 2

原创 python学习10-机器学习了解

机器学习(Machine Learning)是一种人工智能的分支,它使计算机系统能够通过学习和经验改进性能,而不必进行显式的编程。机器学习的目标是使计算机系统具备从数据中提取模式、进行预测和做出决策的能力,而无需显式地编写规则。机器学习的核心思想是通过训练模型来实现任务。训练模型意味着使用输入数据和相关的标签(或答案)来调整模型的参数,以便模型能够准确地对新数据进行预测。这种学习过程可以分为监督学习、无监督学习和强化学习等不同类型。

2024-08-26 15:35:53 1208

原创 python学习9-数据获取与整理5

有点是生成快,如果想炫酷 还是要前端生成,比如echarts。

2024-08-25 22:55:33 691

原创 python学习8-数据获取与整理4

本文将详细讲解Pandas中与时间和日期相关的知识点,包括时间戳的处理、日期的格式化、时间序列的生成与分析等。级联操作是指将一系列的操作按顺序应用到数据集上,并且每个操作的结果都会被保留下来,作为下一步操作的输入。在上面的示例中,我们首先创建了一个数据集df,然后使用groupby(‘Category’)将数据按照"Category"列进行分组,然后使用sum()函数对"Value"列进行求和操作。然后,通过直接相减,可以得到两个时间点之间的时间差,结果将存储在timedelta类型的变量中。

2024-08-25 22:12:58 1247

原创 python学习7-数据获取与整理3

在Pandas中,重建索引(reindexing)是指根据新的索引对原始DataFrame或Series的数据进行重新排列的过程。这个过程对于数据的清洗和准备是非常有用的,特别是在你希望对数据集的索引顺序进行改变或者将两个不同索引的数据集合并时。默认情况下,rank() 为元素分配平均排名,但你可以修改方法来使用不同的排名策略,例如最小排名、最大排名等。这里可以看到,根据新索引重建后,原来索引中的行保持了它们的数据,而新引入的索引’label’(如’d’)的行被填充了NaN。这对于元素级的操作非常有用。

2024-08-25 21:05:47 1135

原创 python学习6-数据获取与整理2

一个轴是数组的一个维度,在 NumPy 中,每个轴都有一个关联的整数索引,从 0 开始。在NumPy中,添加和删除数组元素通常不如在Python原生的数据结构(如列表)中那么自由,因为NumPy的数组是固定大小的。umPy(Numerical Python的缩写)是Python中用于科学计算的基础包之一,它提供了大量的数学函数来对数组进行操作。NumPy 提供了一系列的字符串函数,这些函数可以对数组中的字符串元素进行向量化操作。在 NumPy 中,可以使用多种方式对数组中的每个元素进行平方操作。

2024-08-25 14:05:02 686

原创 python学习6-数据获取与整理1

它包含了一个强大的N维数组对象ndarray,提供了矩阵运算的功能,也包含了许多高级的数值编程工具,如:矩阵数据类型、高效的元素级数组运算以及用于整合C/C++和Fortran代码的工具等。所以,点积是一对一对元素相乘然后加起来,而矩阵乘法是矩阵的每一行与另一个矩阵的每一列做点积,最后得到一个新的矩阵。假设你不仅买了苹果和香蕉,还买了橘子,价格分别是2元、3元和4元。这里的结果 [23, 16, 6] 表示你的总花费是23元,你的第一个朋友的总花费是16元,你的第二个朋友的总花费是6元。

2024-08-25 10:54:31 978

原创 python学习5

读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。Pickle的问题和所有其他编程语言特有的序列化问题一样,就是它只能用于Python,并且可能不同版本的Python彼此都不兼容,因此,只能用Pickle保存那些不重要的数据,不能成功地反序列化也没关系。

2024-08-20 18:20:41 997

原创 Python学习4

这是因为调用s.birth时,首先转换为方法调用,在执行return self.birth时,又视为访问self的属性,于是又转换为方法调用,造成无限递归,最终导致栈溢出报错RecursionError。所以,简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。@property广泛应用在类的定义中,可以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。

2024-08-18 19:47:26 868

2023 electron最新最简版打包、自动升级,自己搭建的架子

2023 electron最新最简版打包、自动升级,自己搭建的架子,很好用

2023-11-05

html使用element

element-ui资源

2021-12-31

转正述职ppt.pptx

前端程序员

2022-01-14

空空如也

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

TA关注的人

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