全部文章
共 1299 篇文章
Electron实现文件缓存背景
背景 基于Electron研发的一款IM企业通信桌面端应用,会存在非常多文件、图片、视频类型回话消息。在Electron应用(桌面客户端软件)中,快速加载并显示图片是提升用户体验的关键。然而,传统的图片加载方式往往存在加载速度慢、资源占用高等问题,影响了用户的使用体验。 解决的问题 1. 支持自定义配置存储的磁盘位置 2. 支持长期存储 3. 支持自定义存储大小 4. 支持自定义存储类型(如图片、视频、文件,或者更细致化到MIME) 5...
ElementPlus 官网导航栏有点意思,来看看咋实现
导航栏效果如下: 接下来,我们基于 + ,逐步复刻,不过无需关注框架,重点在 。 页面结构 先搭建页面结构,大致包含以下内容: :容器元素,包裹 header 和 content 元素。 : 顶部栏, absolute 布局,相对于 container 元素,置顶。 : 内容元素,宽高等同 container,可滚动。 布局示意简图: 以下是 Vue 页面代码: 效果如截图所示,由于没有给 header 设置背景, 默认 (透明),所以...
Git stash命令详解和使用
stash 命令使用非常简单,是经常使用的命令 应用场景: 1 、临时存储已修改的代码:比如正在分支A上开发某个功能,还未完成,突然要切换到B分支上去修复一个bug。这时就可以用git sta 将本地修改的内容保存至堆栈区,再切换到B分支修改bug,修复完成后,再切回到A分支,从堆栈中恢复刚刚保存的内容。 2 、同步代码:由于不小心,本来要在A分支上开发的功能代码,却写在了B分支上,这时就可以用git stash将本地代码...
vscode自定义主题原来如此简单
我的一篇文章 受到广泛好评。小伙伴们对自定义主题非常感兴趣,但这个事情不是简单就能说完的,因此单开一篇文章详细讲解。 程序员工作时一般都会使用本地编辑器,祂就像白月光一样和你并肩作战,不离不弃。 但每个人心中都有自己的白月光形象,如果祂的颜值完美,那自己写代码时也会更加心情舒畅,以月光女神vscode为例 vscode本身内置了一些主题,插件市场更是有数不胜数的主题插件。但那毕竟是别人心目中的完美形象,而一千个人眼里有一千个女神。 vs...
图解Web渲染:一文看懂CSR、SSR、SSG、ISR、ESR、NSR
在现代Web开发中,了解不同的渲染模式对于提升用户体验和网站性能至关重要。本文将图文并茂地介绍几种主要的渲染方式:客户端渲染(CSR)、服务端渲染(SSR)、静态站点生成(SSG)、增量静态重建(ISR)、边缘侧渲染(ESR)和本地侧渲染(NSR)。 1\. CSR(Client Side Rendering客户端渲染) CSR 模式下,浏览器向 CDN 请求静态 HTML 和 JS,JS 负责获取业务服务器数据并在浏览器中渲染页面。...
我的 Electron 客户端也可以全量和增量更新了
前言 本文主要介绍 客户端应用的自动更新,包括全量和增量这两种方式。 全量更新: 运行新的安装包,安装目录所有资源覆盖式更新。 增量更新: 只更新修改的部分,通常是渲染进程和主进程文件。 本文并没有拿真实项目来举例子,而是起一个 新的项目 从 0 到 1 来实现自动更新。 如果已有的项目需要支持该功能,借鉴本文的主要步骤即可。 前置说明: 1. 由于业务场景的限制,本文介绍的更新仅支持 操作系统,其余操作系统未作兼容处理。 2. 更新流...
🚀手机号格式验证不通过?原来是零宽字符搞的鬼
前言 我们有一个需要用到用户的手机号进行一些操作的功能,在这里行文的时候姑且脱敏为:用户输入手机号,我们发短信,这也是经常遇到的功能。 然而有一次,明明用户输入了一个非常正常的手机号(行文中手机号脱敏为 ,我们在本文中认为这个手机号是合法的 ),但是却死活验证不通过,导致发短信失败。 然后下游的同事反馈过来说,我们给到他们的手机号是这样的: 是什么东西呢?它其实是零宽字符的一种,属于零宽空格。 零宽字符简介 零宽字符 是一类特殊的字符,...
uniapp微信开发合集,登录-支付-订阅消息
背景 uniapp很多小程序组件库、功能丰富,可以帮我们快速做开发。但是呢,这些组件库,缺了点儿跟微信业务直接相关的、比如怎么在微信里收钱、怎么让用户登录,还有怎么发订阅消息给他们。这些业务功能,组件库里都没有现成的。 所以啊,我自己动手,开发了一套微信业务组件合集,起了名字叫【uboxui】,专门解决这些问题。这样大家在做微信小程序的时候,就能更方便、更快捷地搞定这些业务上的事儿了。 功能合集 以下内容重点讲解实现思路,完整代码文末下...
Vite前端部署:版本更新,即刻知晓
最近测试和用户频繁反馈,说经常会出现页面点不动了。然后每次都回复,刚发完版,刷新下就好了。但时间长了,就被怀疑是能力问题,因为其他项目为什么不这样呢? 先做一些准备工作,复盘一下当时的场景: 运行 在本地快速新建一个项目 进入项目目录中,运行 安装依赖,安装成功后启动项目 , 启动成功后运行 进行打包。打包完成后根目录下会多出一个dist目录。运行 预览构建后的项目。 页面可以正常打开: 页面窗口保持不变(不进行刷新等其他操作)。在 文...