前端技术
文章平均质量分 76
拿我格子衫来
《GitLab CI/CD 从入门到实战》作者,擅长GitLab CI/CD,ThingsBoard,Node-RED,Monaco Editor,数据可视化及浏览器脚本编写。熟练使用Docker,Kong,云原生相关组件。目前在做矢量图形编辑器,复杂智能激光切割雕刻机上位机的开发。不定期分享图形编辑器相关知识。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
搭建公司产品wiki的开源框架选型,注重介绍wikijs框架
本文记录了企业wiki系统选型过程。针对现有docusaurus框架存在技术门槛高、定制能力弱等问题,作者调研了十余种开源wiki框架,最终筛选出wikijs、WordPress和halo三个候选方案。wikijs凭借简洁UI、易用编辑器和Node.js+Vue技术栈成为首选,尽管其主题定制功能尚不完善。文章分享了开源项目筛选方法,并指出wikijs的生态建设仍需加强。最后作者以个人成长感悟作结,强调保持开放心态和多元化发展的重要性。原创 2025-12-30 17:33:57 · 853 阅读 · 0 评论 -
WebGL 相关基础知识学习
WebGL基础知识与GLSL入门 本文介绍了WebGL的基本概念及其与OpenGL的关系,解释了WebGL的组成结构(JavaScript、GLSL、Canvas)和两种核心着色器(顶点着色器、片段着色器)。文章详细说明了GLSL语言的基本数据类型(浮点、整数、向量、矩阵等)和常用内置函数(向量运算、数学计算、纹理采样等),并提供了简单的着色器代码示例。此外,还对比了WebGL 1.0和2.0的区别,指出WebGL调试困难的原因在于CPU与GPU的严格通讯机制。这些基础知识为理解WebGL渲染流程和编写着色原创 2025-08-27 08:00:00 · 868 阅读 · 0 评论 -
开发一个在https网站,可以与局域网的设备进行无线通讯,发起https与websocket请求的浏览器插件
本文介绍了一个浏览器插件的开发过程,该插件用于解决上位机与局域网设备在HTTPS环境下通讯的问题。由于浏览器限制,上位机无法直接访问设备的HTTP/WebSocket服务,因此采用插件作为数据中转。文章详细说明了技术方案的选择和优化过程,从最初的三方通讯架构简化为更高效的实现方式。特别提到处理文件上传和解决background.js运行时长限制等关键难点。最后强调了技术方案选择的重要性,建议开发者全面了解相关技术文档以避免潜在问题。这个方案最终实现了上位机与设备的稳定通讯,同时保证了良好的可扩展性。原创 2025-08-21 08:00:00 · 990 阅读 · 0 评论 -
在react app中使用 web worker的方案,基于 creat-react-app脚手架,并且webapck 为 5.x
改写 App.tsx。原创 2024-12-23 08:00:00 · 393 阅读 · 0 评论 -
datahub 中血缘图的实现分析,在react中使用airbnb的visx可视化库来画有向无环图
低级元素是说它不直接提供一个个完整的图表,而且要使用多个元素组装实现,这也意味着 要使用它,还是有一点门槛的,但人家的审美确实在线。因为这个库并不是一个专业的Graph库,所有在图的布局算法,自定义接的,自定义线,或者图的交互 都不如g6做的丰富。之前在公司也做过一些案例,也看过很多友商的产品,阿里的DataWork,领英的Datahub,做大数据的项目,必不可少的是要接触到数据血缘图,它在大数据项目中有着很重要的作用。血缘图使用的react-flow,节点,线都是使用div画的。大数据量时,可能堪忧。原创 2023-10-24 16:42:02 · 7492 阅读 · 0 评论 -
华为云云耀云服务器L实例评测|云耀云服务L实例应用镜像的详细介绍
在购买产品是,我们需要选择合适规格的产品,这样用起来才能得心应手。大家在购买时可以根据以上的应用介绍来进行选择。如果有任何问题欢迎留言询问。原创 2023-09-06 22:38:40 · 5907 阅读 · 0 评论 -
基于Element-ui的颜色选取器,增加最近使用的颜色。
8个预设颜色值,使用一个颜色后,将颜色放到第一个预设颜色,去重,保存到本地。原创 2023-08-22 07:00:00 · 5908 阅读 · 0 评论 -
如何将一个目录下的所有md文件导出成pdf
使用脚本 工具 进行 markdown 批量转 pdf原创 2023-07-14 12:01:13 · 4426 阅读 · 0 评论 -
探索基于VSCode的远程开发插件,进行远程指令和本地指令的运行
连接远程时,会刷新一下当前窗口,我猜测是刷新当前的工作目录,以及一些上下文,和变量,环境变量,而且在打开终端时,默认就是当前的远程工作目录,使用cd命令无法进入本地机器目录。该参数可以设置终端的名称,自定义的shell执行器的路径,执行shell的参数,工作目录,环境变量。当你使用这个插件链接到远程机器,并打开一个工作目录时,那么终端的命令是默认在当前的工作目录,需求是,当是远程工作目录时,也能够够创建一个终端,而这个终端的工作目录是本地工作目录。你可以这样创建终端,将工作目录中的子级当做终端的工作目录。原创 2023-07-11 10:13:36 · 4172 阅读 · 0 评论 -
echarts 的 一个图表容器,使用grid存放多个折线图,并配置x轴联动
数据系列的配置对象,用于描述每个数据系列的类型、名称、样式等。其中包含了两个对象,分别对应两个数据系列(此处是折线图),其中包含了两个对象,分别对应上下两个部分的网格,其中包含了两个对象,分别对应上下两个部分的横轴,其中包含了两个对象,分别对应上下两个部分的纵轴,:图例组件的配置对象,用于展示图表中各个数据系列的名称及对应的符号。:数据区域缩放组件的配置对象,用于控制数据区域的缩放状态。:提示框组件的配置对象,用于在鼠标悬停时显示提示信息。:标题组件的配置对象,用于设置图表的标题。原创 2023-06-26 07:30:00 · 4078 阅读 · 0 评论 -
「AntV」当我用AI为开发AntV图表插上想象的翅膀后
做前端图表时,最耗时的就是找配置参数,比如你在使用AntV G2时,为了更加美观,拉大数据之间的差距,需要将y轴设置一个最小值,由于每个图表的参数少说十几个,多达二十多个,一个一个找,势必会浪费很多时间,更何况有时你找的参数并不在某一具体的图表模块,而是在公共的图表组件配置模块中。这个时候我就思考,这些寻找配置参数,毫无技术性的,耗时的工作能不能交个AI来做?所以在日常的开发图表的过程中,遇到问题,我刻意地去利用AI去完成。下面看一下我在实际开发中的几个案例。原创 2023-06-21 14:34:23 · 10508 阅读 · 1 评论 -
「AntV」基于AntV G6 实现 数据血缘有序分组dag链路图排版
数据链路图是数据开发产品中的一个核心特性,也是产品核心竞争力之一。对此感兴趣的可以多花一段时间做一个专题研究,也欢迎私下找我讨论。最后希望大家都能在滴普得到成长,做出自己的杰出的作品。要相信功夫不负有心人✌。原创 2024-01-11 08:00:00 · 7414 阅读 · 7 评论 -
「AntV」基于 AntV G2Plot 来实现一个 堆叠柱状图 加 折线图 的多图层案例
<template> <div> <div id="container" style="height: 500px; width: 800px"></div> </div></template><script>import { Mix } from '@antv/g2plot'export default { data() { return {} }, methods: {},原创 2023-06-19 11:07:48 · 4519 阅读 · 1 评论 -
「AntV」@antv/g2plot 特殊 散点图 x轴为category 调整了legend 的marker
下面代码演示了如何使用 antv/g2plot 创建一个散点图,并对其进行基本的样式和布局配置。具体来说,代码中的 data 数组定义了散点图的数据系列,每个数据对象包含了分类、值和 y 轴字段三个属性。而 cateMap 对象则定义了每个分类对应的颜色和形状。在创建 Scatter 实例时,通过传入参数配置了散点图的一些基础属性:padding 控制了散点图绘制区域与画布边缘之间的间隙;xField 和 yField 分别指定了 x 轴和 y 轴所对应的字段;colorField 和 sha原创 2023-06-13 10:35:22 · 5388 阅读 · 0 评论 -
Monaco Editor编辑器教程(三二):编辑器中有关事件的汇总,鼠标事件,内容变更,模型变更
在monaco 编辑器中,有很多事件,鼠标事件,滚动条事件,按键事件。鼠标事件中又区分点击,悬浮,移动事件,而点击事件又区分点击区域。本篇文章就来汇总地讲解一下Monaco编辑器汇总事件的用法以及相关API。原创 2023-05-18 07:30:00 · 4387 阅读 · 0 评论 -
Monaco Editor编辑器教程(三一):在编辑器中实现模拟调试的交互
最近有小伙伴咨询如何在编辑中实现 像vscode调试代码那样,可以打断点,可以高亮当前运行的一行。这样的需求并不多见,如果要做,那肯定是对编辑器做一个深层次的定制。一般很少很少会实现这种在浏览器中调试。目前我还没见过,如果有遇到过的朋友可以指点一下。我去学习一下。废话不多说,既然读者提出这样的要求,那肯定是有场景的。只是自己没有遇到过。于是自己调研了一番, 勉强使用与行高亮实现了。下面讲解一下。原创 2023-05-15 07:30:00 · 4380 阅读 · 8 评论 -
Monaco Editor编辑器教程(二八):Monaco 与 VS Code 两个项目的联系与异同点
很多人知道前端代码编辑Monaco Editor 与VS Code 有关系,但却不清楚其中的细节,本篇文章就带大家了解一下两者的关系和异同点。优秀的产品 周边也都优秀。正所谓强将手下无弱兵。我们进入一个优秀的团队,接触一些优秀的人,对我们的人生规划 大有裨益。强行胡扯-_-原创 2023-04-27 07:00:00 · 11923 阅读 · 1 评论 -
nodejs项目的轻量级数据持久化方案,node-json-db,直接使用json文件保存,查询数据。
借助本地文件系统来进行数据存储,降低技术成本和学习成本,快速实现业务场景。原创 2023-04-20 07:45:00 · 4493 阅读 · 0 评论 -
近期遇到的vscode 插件开发的问题,when表达式,正则匹配路径
解决vscode升级后,插件when条件语句的问题,并解释插件在不同平台下的变量值的差异。原创 2023-04-19 07:45:00 · 4201 阅读 · 0 评论 -
VS Code 插件开发概览
VS Code作为开发者的代码开发利器,越来越受开发者的喜爱。像我身边的前端,每天80%的开发工作都是在VS Code上完成的。随着人们对它的使用,不再满足简单的优雅,舒服写代码这一基本需求。有些人利用它进行摸鱼,看小说,查股票,看文章,下五子棋。当你在VS Code的插件市场输入摸鱼二个字时,会有20多个插件供你选择。本篇文章就来概述一下 VS Code的能力,并帮你快速建立插件文档的索引。原创 2023-04-17 07:00:00 · 10291 阅读 · 0 评论 -
修复开源VS Code 插件Trino Driver的三个小问题
最近产品中使用到一款SQLTools的VS Code插件。该插件可以在VS Code中实现数据库管理,而且支持非常多的数据源类型,官方的数据源类型有CockroachDB,MariaDB,MySQL,PostgreSQL,SQLite,Microsoft SQL Server/Azure ,另外还有很多社区的数据源驱动。而我们使用管理的数据源类型是Trino,图标是一个小兔子。使用到的组件是但在使用这个插件时,存在两个问题。原创 2023-04-12 07:00:00 · 4189 阅读 · 2 评论 -
复杂布局结构vue组件,树形组件集成表格组件,每个节点代表一行
本篇文章介绍一种比较复杂的排版方式,是一种树形组件集成了表格组件,树的每一个节点都具有一行配置。对比产品页面如下:看个这个页面,我们首先想到的是,一个树组件,和一个表格组件。如果要把右侧当成表格组件坐起来是比较复制的。因为涉及到树节点的折叠,对应的行也要折叠。所以最简单的办法是,模拟右侧的表格,将每一行写到树节点中。这样,折叠节点时,对应的行也相应被折叠。顶部的表头是一个单独的div实现,向右偏移。左侧的树使用element-plus的树组件来展示。每一个节点应该使用插槽来写,这样可以单独处理很多原创 2023-03-27 07:30:00 · 4138 阅读 · 0 评论 -
在vite vue3 前端架构中,切换环境,切换项目的架构设计方案
最近在项目中遇到了这样一个问题,在我们的系统中,有一个项目的概念,用户可以创建多个项目,每个项目中又有多个环境, 当用户点击项目名称后,会进入一个项目的内页,左侧菜单栏会有切换环境的功能。这个方案的有好处也有坏处,好处时,每个页面都可以在切换环境后 做单独的页面逻辑处理,对于公用的数据,即不依赖环境的接口数据,不需要重新加载。那么在切换一个项目的环境后,要求停留在当前的页面,并获取当前环境下的文章,用户,角色,等数据。我的同事的方案是,切换环境时,先跳转到一个空的页面,在该页面进行重定向。原创 2023-02-23 08:00:00 · 10429 阅读 · 0 评论 -
一个带有群组节点的血缘图 dagre 与 g6结合的例子
一个dag与g6结合的例子原创 2022-08-22 17:48:35 · 5957 阅读 · 0 评论 -
使用fiddler断点修改某个接口的 请求参数与返回参数,拦击请求,修改请求与响应
有一个接口https://blog.youkuaiyun.com/phoenix/web/blog/pay-column-rank?page=1&pageSize=20排行榜分页获取接口,默认每页20条数据,但我想一下子拿到数据数据,所有要修改pageSize。在fiddler中再次请求改接口时就会触发断点点击WebForm,对请求参数进行修改。将pageSize修改为100。 注意整个过程不能太慢,否则http会请求超时的。修改完成后,点击绿色的 按钮,完成请求。这样就能对请求进行拦截,并修改请求参数了原创 2022-06-07 11:07:51 · 9148 阅读 · 0 评论 -
云托管使用自定义域名
使用云托管的时候,系统会自动分配一个公网访问地址,但如果开发者想要绑定到自己已备案的域名也是可以的,下面就来介绍一下,如何将云托管的服务绑定到自定义的域名上。部署服务首先在部署服务的时候我们要开始公网访问开启后,就会有一个公网访问的地址, 如下图。访问该地址就能看到该服务的web页面, 如下接着开始绑定域名点击自定义域名菜单项,点击绑定域名按钮,填入要绑定的域名,选择要关联的服务。点击确定按钮确定后,稍等片刻,就会新增一条绑定域名的记录复制出来CNAME。进入自己的域名解析,我的原创 2022-02-23 11:06:25 · 4156 阅读 · 0 评论 -
使用 white-space 来实现保留文本域 textarea的换行格式和 空格格式
换行符空格和制表符文字换行行尾空格normal合并合并换行nowrap合并合并不换行pre 保留保留不换行保留pre-wrap保留保留换行pre-line保留 合并换行删除break-spaces保留保留换行pre连续的空白符会被保留。在遇到换行符或者元素时才会换行。pre-wrap连续原创 2022-02-16 19:51:20 · 4195 阅读 · 1 评论 -
给测试小妹做了一个js版屏幕录制工具iREC,她用后竟说喜欢我
iREC 一款基于浏览器JavaScript的屏幕录制工具在浏览器中,分享屏幕,不局限与浏览器内容,实时查看。支持录制,下载。原创 2021-10-18 17:46:49 · 11780 阅读 · 14 评论 -
网课杀手 loop
最近我那上大学的小表弟找我,问我有没有办法破解他们的网课系统。起初我是拒绝的,好好的网课不上,净想着一些乱七八糟的事情。但我再看了他们的网课内容后觉得确实没必要看,很多网课内容都是过时的,质量很差,而且画质很差。于是我觉得帮他一把。于是我详细了解了一下小表弟的需求。原来事情是这样的,他们大学布置了一些网课,这些网课通过账号密码登录一个web系统观看。只记录观看时长,时长累计够了就能拿到学分。一个视频看多次也可累计时长。一个视频观看后自动暂停,不可以同时观看多个视频。在这样的规则下,找到网课中最长的那原创 2021-10-09 17:02:05 · 11985 阅读 · 2 评论 -
前端qiankun微服务单镜像部署方案
目前状况目前的部署方式是 5个前端应用都单独打一个docker镜像,单独部署,最后配置kong网关将5个应用连接起来。痛点由于每个前端都单独打包一个docker镜像,这种做法是非常消耗资源的,首先是5个应用是一个整体,部署时需要全部应用一起上线,5个应用打包5个镜像,每次打镜像都需要操作5次,而且容易出错。每个镜像都是基于nginx镜像来构建,存储每个镜像需要55M,5个应用就是 275M,这是压缩后存储在harbor的容量,真实在服务器中的大小是139M,非常消耗资源。部署时每启动一个应用都相当于启原创 2021-08-28 10:33:33 · 10370 阅读 · 3 评论 -
Node-RED系列(二十):一文让你彻底了解物联网平台Node-RED
介绍ibm 开源, 低代码版本,特性,开发语言使用安装方式,面板使用,常用节点介绍配置配置文件,架构解析依赖包的相关介绍,依赖关系框架开发修改样式增加自定义节点原创 2021-06-07 09:47:07 · 6756 阅读 · 3 评论 -
flex布局测试题
Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross star原创 2021-04-30 17:32:00 · 4358 阅读 · 1 评论 -
看了一下午ECharts的文档,发现他们官方有一个bug和n处语病。
https://echarts.apache.org/zh/tutorial.html#ECharts%20%E5%9F%BA%E7%A1%80%E6%A6%82%E5%BF%B5%E6%A6%82%E8%A7%88原创 2021-02-08 16:28:50 · 3868 阅读 · 0 评论 -
处理flex弹性,space-between,space-around 的最后一行
先看效果图最后一行补位,补充多个元素, height: 1px;, visibility: hidden使用了最小宽度来保证每个元素在缩放时,能够以最小宽度正常显示。也有一个固定宽度为了避免数据少时,独占一行,显示难看。解决上下行元素 多出的间隔 使用align-content: baseline;核心代码.item.h1 { height: 1px; visibility: hidden } <!DOCTYPE html><html>原创 2021-02-04 23:19:28 · 10285 阅读 · 0 评论 -
如何写文章赚稿费?
最近有一个新的社区负责人通过博客找到我,读过我的几篇博客后,他一直赞赏我的博客写的好,认为我才高八斗,玉树临风,风流倜傥。对他的夸奖我一直微笑地看着他(确切说是注视着屏幕)。后来他说 他们社区刚起步,但不差钱,想邀请我去他们家,不他们社区做做,当个首席供奉。在他们社区每发表一篇文章,都有稿费,不低于30,每篇只需要3000字,算代码和标点符号。。。。。。。。我写文章,一般都是5k字起步的,没办法,才华冒出来,挡都挡不住。刹不住车。但要求是首发,排版精美,逻辑清晰,不是水文。 我心里犯嘀咕,有那么好的原创 2020-12-05 16:52:33 · 4044 阅读 · 2 评论 -
没有VT 虚拟技术的AMD处理器如何安装安卓模拟器 并运行Flutter demo
鼓弄flutter 的时候需要安装安卓模拟器,我的电脑cpu是amd的,支持vt虚拟技术,无法使用安卓studio安卓模拟器,经过一番摸索,我使用了网易开发的MuMu模拟器。安装后是这样的安装了模拟器之后需要将模拟器连接到安卓Studio,我们找到MuMu的安装目录以我的为例D:\MuMu\emulator\nemu\vmonitor\bin...原创 2020-02-10 21:30:19 · 11296 阅读 · 2 评论 -
Flutter中的StatelessWidget 与 StatefulWidget
Statelesswidgets 是不可变的, 这意味着它们的属性不能改变 - 所有的值都是最终的.Statefulwidgets 持有的状态可能在widget生命周期中发生变化. 实现一个 stateful widget 至少需要两个类:一个 StatefulWidget类。 一个 State类。 StatefulWidget类本身是不变的,但是 State类在widget生命周期...原创 2020-01-23 20:50:49 · 3825 阅读 · 0 评论 -
Flutter BottomNavigation 底部导航详解 及问题记录
Flutter BottomNavigation 底部导航详解主要是使用了Scaffold下的bottomNavigationBar 整个属性,在这个属性下,可以添加底部图标的背景色,选中颜色,以及是否粘贴到底部,和导航的个数在app的主页面,home指向底部导航栏的组件home: BottomNavigation(),底部导航栏的组件集成 Statef...原创 2020-01-23 15:21:48 · 15347 阅读 · 0 评论 -
搭建一个flutter项目的全步骤
下载Flutter SDK 解压到C:\src\flutter将路径C:\src\flutter\bin添加到系统变量Path中下载Android Studio 安装 并安装Flutter插件 File >Settings > Plugins 输入Flutter, 会连带Dart插件一起安装打开Android Studio File...原创 2020-01-20 17:36:55 · 6393 阅读 · 0 评论 -
3d Three.js 国内api文档 案例 地址
国内 Three.js API国外原地址 Three.js API原创 2019-06-13 11:06:09 · 10239 阅读 · 0 评论
分享