自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 go项目 打包部署流程

点击宝塔左侧网站,点击添加 go 项目,然后将打包好的 main 文件进行选中。官网下载 go 的 linux 版本,然后上传到服务器。在服务器安全组里对 go 项目暴露的端口进行放行。将本地 go 项目放到服务器某个文件夹。对 go 进行解压(注意版本号)配置nginx进行端口代理。

2024-04-10 18:02:45 229

原创 技术点:go入门

去官网。

2024-04-07 16:56:43 587 1

原创 使用Echarts绘制中国七大区地图

先上效果图(文字是否显示,显示什么字,各种颜色之类的,都能随便改)直接上完整代码地图是需要输入数据初始化的以下是地图 json 文件

2024-03-07 09:59:56 911

原创 技术点:实现大文件上传

作为切片 Hash,这样做文件名一旦修改就失去了效果,而事实上只要文件内容不变,Hash 就不应该变化,所以正确的做法是根据文件内容生成 hash,所以我们修改一下 Hash 的生成规则。控制的,目的是能够并发合并多个可读流到可写流中,这样即使流的顺序不同也能传输到正确的位置,所以这里还需要让前端在请求的时候多提供一个。由于前端在发送合并请求时会携带文件名,服务端根据文件名可以找到上一步创建的切片文件夹。无论是前端还是服务端,都必须要生成文件和切片的 Hash,之前我们使用。文件名 + 切片下标。

2023-12-15 10:23:30 541

原创 如何使用 docker 在本地部署 vite 项目

直接访问 http://localhost:8080 即可看到效果。

2023-11-14 10:32:42 778

原创 微信小程序搜索局域网设备

最终目的:在微信小程序内搜索到同局域网内的其他设备实现步骤:小程序开启 mDNS(多播 DNS) 搜索 + 其他设备配置对应的 mDNS 模块。

2023-10-18 09:42:00 822

原创 微信小程序使用TCP通信

最终目的:在微信小程序内实现对局域网发起TCP通信实现步骤:建立TCP服务 + 小程序发起通信。

2023-10-12 16:45:09 2278

原创 使用 AntV X6 + vue 实现单线流程图

X6 是 AntV 旗下的图编辑引擎,提供了一系列开箱即用的交互组件和简单易用的节点定制能力,方便我们快速搭建 DAG 图、ER 图、流程图等应用。

2023-08-01 10:47:36 3824 1

原创 vueuse常用hooks

vue 项目常用 hooks。

2023-04-28 15:35:13 1048 1

原创 vueuse常用hooks

vue 项目常用 hooks。

2023-04-24 15:26:55 799

原创 笔记:无界微前端入门

wujie(无界)是腾讯在 2022 年 7 月推出的微前端框架,下面是腾讯前端团队的原话无界微前端方案基于 webcomponent 容器 + iframe 沙箱,能够完善的解决适配成本、样式隔离、运行性能、页面白屏、子应用通信、子应用保活、多应用激活、vite 框架支持、应用共享等用户的核心诉求。

2023-04-18 14:50:47 3290 2

原创 技术掉:PDF显示,使用pdf.js

其实直接显示 pdf 可以用 iframe 标签,但产品觉得浏览器自带的 pdf 预览太丑了,而且无法去除那些操作栏。然后将下载好的文件放进项目的静态文件夹,我用的是 vite 项目,所以是 public。filte 是你的 pdf 的路径,本地路径和 url 路径都是可以的。直接去修改 viewer.html 里面的代码就行了。首先此插件跨域的话会报错,需要注释掉部分代码。下载稳定版的 pdf.js 文件。设置好之后就可以预览了。注释掉之后就可以解决了。

2023-03-17 17:29:48 1516

原创 技术点:前端缓存分类及使用

和浏览器缓存:比如,localStorage,sessionStorage,cookie 等等。这些功能主要用于缓存一些必要的数据,比如用户信息。比如需要携带到后端的参数。亦或者是一些列表数据等等。比较基础,不做过多赘述。

2023-02-06 13:44:03 390

原创 技术点:weekMap和Map的区别

当使用 map 时,由于对键值是强引用,map 的 obj 属性被赋值为空时,obj 所对应的 'xxxx’值其实还是存在的,并没有被回收,所以真正去清空应该使用 delete 方法,然后再清空 obj 的引用。解析:WeakMap 的键是对象的时候,如果该对象被赋值为空时,垃圾回收机制会对那个对象所对应的值也进行垃圾回收。而使用 WeakMap 的时候,想处理属性,直接清空 obj 的引用就行了,obj 所对应的值也会直接被回收。答案: WeakMap 是弱引用。

2023-02-01 15:30:52 398

原创 技术点:sequelize基础入门

对于 UUID,使用 DataTypes.UUID. 对于 PostgreSQL 和 SQLite,它会是 UUID 数据类型;

2023-01-31 13:46:51 461

原创 技术点:手写axios

/ // 请求url。// // 请求类型。// // 请求参数。// // 请求体。

2023-01-29 13:53:58 827

原创 TypeScript 入门知识点记录

可以使用对象索引签名声明、Record 工具类两种方法。默认 circle 为真时,radius 一定存在。用于构造一个含有 Type 函数的返回值的类型。左侧为可选择的属性,右侧为需过滤掉的属性。左侧为可选择的属性,右侧为选择好的属性。含义是取 T 和 K 未共有的字段。含义是取 T 和 K 共有的字段。左侧为属性类型,右侧为值。

2023-01-10 16:39:28 86

原创 技术点:JavaScript的几种常用高阶函数及其应用场景

维基百科中对偏函数 (Partial application) 的定义为:翻译成中文:在计算机科学中,局部应用是指固定一个函数的一些参数,然后产生另一个更小元的函数。什么是元?元是指函数参数的个数,比如一个带有两个参数的函数被称为二元函数。return a + b } // 执行 add 函数,一次传入两个参数即可 add(1 , 2) // 3 // 假设有一个 partial 函数可以做到局部应用 let addOne = partial(add , 1) addOne(2) // 3。

2023-01-05 14:52:09 362

原创 JavaScript常用技巧:stroage封装

【代码】JavaScript常用技巧:stroage封装。

2022-12-12 10:26:30 202

原创 技术点:vue3 使用 ref 绑定 router-view,想调取某个子路由中的方法来重载数据

当前有一个页面为父路由页面(/system)他的子页面是他的两个下级(/system/user /system/auth)由于搜索框及添加按钮都在父级母版中,现在需要在点击添加按钮或者搜索框搜索时都触发子路由页面对应的方法,如:在tab选中用户列表时,触发子页面内的添加用户方法,tab选中角色权限时,触发子页面的添加角色方法在 /system 中在 /system/user , /system/auth中

2022-12-07 10:28:45 1567

原创 monaco-editor(code编辑器插件)使用及常用配置与方法

2.在 vite.config.js 中配置3.新建组件code-editor.vue4.使用常用方法// 常用设置// 监听事件editor.getValue()editor.setValue(‘77777’)editor.dispose() //销毁实例monaco.editor.setModelLanguage(editor.getModel(), ‘javascript’) //语言设置editor.getAction(‘editor.action.formatDocument’).r

2022-12-06 15:01:39 4948

原创 前端开发规范:JavaScript 规范

下列关键字后必须有大括号(即使代码块的内容只有一行):if, else, for, while, do, switch, try, catch, finally, with。通常情况下,参数超过两个意味着函数功能过于复杂,这时需要重新优化你的函数。过多的参数将导致难以采用有效的测试用例对函数的各个参数进行测试。Promises 是较回调而言更好的一种选择,但 ES7 中的 async 和 await 更胜过 Promises。注释并不是必须的,好的代码是能够让人一目了然,不用过多无谓的注释。

2022-10-17 09:16:14 307

原创 前端开发规范:CSS 代码规范指南

样式书写一般有两种:一种是紧凑格式 (Compact)一种是展开格式(Expanded)统一使用展开格式书写样式。

2022-10-13 14:05:23 631

原创 微前端:使用qiankun框架的注意点

解决方案: 使用 vite-plugin-qiankun 包,暂未使用过,不过看有部分人是使用的这个。第一个微应用 mount 后需要调用的方法,比如开启一些监控或者埋点脚本。初始化完成后进入默认的子应用。

2022-10-11 16:58:13 726

原创 微前端:使用qiankun框架从 0-1 搭建vue构成微前端项目

最终一个简单的微前端就配置好了,可通过主应用的路由来控制显示哪个子应用。新建 main 主应用和两个使用 vue/cli 创建的子应用。如果报错了 就降级 vue/cli 到 4 版本。main 项目中的 main.js。main 项目中的 App.vue。

2022-10-11 11:54:12 655

原创 优雅的解决uniapp 页面多个组件调用同一个生命周期时的冲突

page 页面定义一个对象,储存所有上拉刷新要触发的方法,再定义两个添加或删除属性的函数// 下拉的方法组成的对象 const pullRefreshEvent = {};/*** 添加事件* @param {string} key 事件的key(唯一值)* @param {function} fun 要执行的方法}page 页面监听 onPullDownRefresh 事件,循环管理方法的对象,执行所有的方法} });父组件向外暴露方法,供子模块调用。

2022-09-28 10:06:51 1276

原创 微前端学习笔记

微前端就是将不同的功能按照不同的维度拆分成多个子应用。通过主应用来加载这些子应用。微前端的核心在于拆, 拆完后在合!

2022-09-23 10:21:28 403

原创 技术点:前端缓存(web 缓存)详解

web 缓存主要指的是两部分:浏览器缓存和 http 缓存浏览器缓存: localStorage,sessionStorage,cookie 等等http 缓存: 通过配置 http 请求头来达到缓存的效果,分为强缓存和弱缓存值得注意的一点是,不同于 cache-control 是 expires 的完全替代方案(说人话:能用 cache-control 就不要用 expiress)。ETag 并不是 last-modified 的完全替代方案。

2022-09-19 11:33:51 1492

原创 js算法之旅:二叉搜索树实现

二叉树中的节点最多只能有两个子节点:一个是左侧子节点,另一个是右侧子节点。这些定义有助于我们写出更高效的向/从树中插入、查找和删除节点的算法。二叉树在计算机科学中的应用非常广泛。二叉搜索树(BST)是二叉树的一种,但是它只允许你在左侧节点存储(比父节点)小的值,在右侧节点存储(比父节点)大(或者等于)的值。......

2022-08-30 09:46:35 321

原创 技术点:使用vue和element实现地图选点功能

通过腾讯地图组件与页面通信的原理,实现一个点击选择地图进行选点的功能

2022-08-26 20:40:04 2413

原创 安装 commitlint 和 husky 约束项目提交规范

添加 hook 之后,每次 git commit 之前都会先运行 npm run lint,通过之后才会提交代码。现在提交信息不合法就会被拦截导致提交失败,规范可见 commitlint ,你也可以根据需要修改提交信息规范。然后把 commitlint 命令也添加 Husky Hook。然后在 package.json 中添加脚本 prepare 并运行。通过 Husky 在 Git commit 时进行代码校验。运行命令后会在项目根目录创建 .husky 文件夹。现在给 Husky 添加一个 Hook。.

2022-08-17 15:46:25 593

原创 js数据结构与算法:链表

什么是链表?链表存储有序的元素集合,但不同于数组,链表中的元素在内存中并不是连续放置的。每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成例子火车实现function LinkedList() { let Node = function (element) { // {1} this.element = element; this.next = null; }; let length = 0; // {2} let head =

2022-08-12 16:35:35 44

原创 js数据结构与算法:优先队列

一般来说,队列讲究先进先出,后进后出就像排队一样。但现实中往往有人有特权,比如机场vip,医院急症室,这些都属于需要优先处理的,即使他是后来的,但人家优先级比较高。

2022-08-12 11:08:13 581

原创 使用auto-imgport插件实现vue3等API的自动引入

大多数页面都会有一堆 import 来引入一些函数,会非常麻烦,但如果我们使用了 unplugin-auto-import 这个插件之后,我们就可以省去这些常用的 import。声明文件 auto-imports.d.js 时自动生成的,可以去看看文件内容,里面会标明自动引入了哪些东西。第二步:引入到项目的配置文件中,此处以 vite 为例(更多场景使用请自行查阅官网。第一步:安装 unplugin-auto-import 依赖。这样项目代码写起来就简单多了!...

2022-08-11 10:22:52 668

原创 js算法之旅:枚举

将所有可能出现的情况都列举出来就是枚举。

2022-08-08 16:50:29 247

原创 js算法之旅:用队列和栈计算出扑克玩:拖板车(小猫钓鱼) 游戏的结果

小哼先拿出手中的第一张扑克牌放在桌上,然后小哈也拿出手中的第一张扑克牌,并放在小哼刚打出的扑克牌的上面,就像这样两人交替出牌。出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将两张相同的牌及其中间所夹的牌全部取走,并依次放到自己手中牌的末尾。假如游戏开始时,小哼手中有 6 张牌,顺序为 2 4 1 2 5 6,小哈手中也有 6 张牌,顺序为 3 1 3 5 6 4,最终谁会获胜呢?现在你可以拿出纸牌来试一试。存储数据的方式,先进后出、后进先出,例如手枪上膛了,先打出得永远是最后上进去那发子弹。...

2022-08-05 10:37:27 1225

原创 踩坑:uniapp写hooks时,响应式丢失

拿到数据时,可以打印,但是页面没更新!!然后想通过监听,来看看是不是ref的响应丢失了但从上图发现,watch是可以监听到变化的,那是啥子原因???突然,发现了编辑器出现了一行小字,黄色警告setData数据传输长度为1076KB,存在有性能问题!我想,我一行代码咋会有16kb呢,难道是接口数据的问题?然后瞅了一眼接口返回的数据,好家伙,五万多条!破案了,就是数据太大的原因,到时页面由于性能问题无法响应,页面遭不住,数据太多了。...

2022-07-28 14:42:16 953

原创 JavaScript算法之旅:简易桶排序、冒泡排序、快速排序

每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。这样在每次交换的时候就不会像冒泡排序一样只能在相邻的数之间进行交换,交换的距离就大得多了。当然在最坏的情况下,仍可能是相邻的两个数进行了交换。因此快速排序的最差时间复杂度和冒泡排序是一样的,都是O(N2),它的平均时间复杂度为O(NlogN)。小哼的班上只有5个同学,这5个同学分别考了5分、3分、5分、2分和8分,哎考得真是惨不忍睹(满分是10分)。...

2022-07-26 15:18:04 345

原创 打开vscode时,提示:尝试在目标目录创建文件时发生一个错误,拒绝访问

打开vscode时,提示尝试在目标目录创建文件时发生一个错误,拒绝访问。等更新好之后就可以了。

2022-07-19 08:52:16 2165

原创 微信小程序实现人脸识别

目前项目有个需求,需要在微信小程序里实现一个自定义相机,然后用户可操作来拍照,最后将拍出来的照片进行人脸识别

2022-07-15 23:00:00 2688 2

空空如也

空空如也

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

TA关注的人

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