git分支开发策略

11 月 18 日
阅读 1 分钟
130
现在收到新增需求,需要添加一个feature/add-topic-tab分支,该分支部分依赖feature/add-theme-tab中的内容。

css文字溢出省略不生效的场景记录

11 月 9 日
阅读 4 分钟
132
场景1:行内元素不生效 {代码...} 将span改成div,就生效了 {代码...} 这是由于满足文字省略需要元素自身有宽度,但是行内元素没有宽度。我们将span修改为inline-block,然后加上宽度也可以解决,div元素的宽度是100%,也就是容器的宽度,所以它也就能生效。 {代码...} 场景2:flex元素上使用文字省略会失效 {代码...} ...

最好的svg使用方案(个人觉得)

11 月 9 日
阅读 1 分钟
160
找了好几个常见的插件,比如vite-plugin-svg-icons、vite-plugin-svg-loader、unplugin-icons、iconify,感觉都不太好用,这些插件使用前都要在vite先中指定目录,要不就是需要提前配置要使用的图标,都不太好用。最后发现vite-svg-loader,感觉完美,记录分享下。

分享一个列表页和详情页数据同步的方案

11 月 8 日
阅读 1 分钟
125
这时候,如果返回列表页,刚才详情点赞、收藏等等的操作数据需要同步到列表页中。一般的处理方式是重新拉取列表页数据。这样当然也没什么问题,但我们可以改进一下,我们看看改进方案

如何修改被添加到git中的文件,但是又不想将修改提交?

11 月 8 日
阅读 1 分钟
204
例如多人工程中,.vscode/settings.json被管理者提交到了git中,但是我本地又有自己想修改的配置,如果直接修改git就会检测到,然后不小心就commit了。

如何获取视频地址的某一帧?

11 月 8 日
阅读 3 分钟
183
场景需要用视频的某一帧作为预览图思路创建video对象,加载视频元数据,然后用canvas绘制video的画面。实现细节1 创建video对象,加载元数据,然后监听必要事件 {代码...} 2 创建canvas对象,然后绘制video画面 {代码...} 3 绘制操作是异步的,修改函数返回promise {代码...} 4 调用 {代码...} 5 验证结果注意事项如果你...

菜单元素溢出时,自动滚动到可视区域

11 月 3 日
阅读 3 分钟
315
获取当前点击元素的offsetLeft,然后将offsetLeft设置为容器的scrollLeft。虽然这样可以使当前点击元素处于可视区域,但是会导致无法点击前一个元素。解决办法是用offsetLeft减去容器宽度的一半,这样可以让当前点击元素展示在容器中间,问题就解决了。

startViewTransition的简单示例

10 月 30 日
阅读 6 分钟
498
startViewTransition的默认效果是对新旧视图进行fade-in和fade-out动画过渡,也就是opacity的0和1过渡。

使用yarn的workspace功能搭建mono-repo

10 月 3 日
阅读 2 分钟
338
name后面会用来作为子包的前缀private是workspace的固定要求workspaces用来告诉yarn哪些是子包,这里的通配符属于简写,让yarn自动识别子包

给线条类型的svg图标加上绘制的动画效果

10 月 2 日
阅读 3 分钟
400
效果展示步骤分解1 确认svg文件有路径数据2 获取path的长度3 定义绘制线条的长度4 定义关键帧动画5 应用关键帧动画实操1 确认svg文件有路径数据path标签里面的d属性,就是路径数据 {代码...} 2 获取path的长度调用SVGPathElement上的getTotalLength方法,获取线条的长度 {代码...} 3 定义绘制线条的长度把从getTotalLeng...

clip-path

9 月 28 日
阅读 2 分钟
234
接受5个参数clip-path: inset(top right bottom left round border-radius);如果你需要设置形状的圆角,就必须在前面写上round,用来表示接下来的值是圆角值,也就是说round border-radius是可选值

tsconfig.json学习

9 月 26 日
阅读 7 分钟
468
extends作用:指定需要继承的tsconfig.json配置文件,可以是npm包也可以是本地文件示例: {代码...} references作用:让一个仓库中的多个关联的子应用能够联动编译示例: {代码...} {代码...} {代码...} {代码...} frontend和api都依赖了common,通过在references中指定common,当修改了common的代码后,就会触发所有依...

chrome插件实现监听ajax请求,然后修改请求参数

9 月 16 日
阅读 2 分钟
410
1 修改manifast.jsonmanifest_version必须为3,因为这个declarativeNetRequest是3中新增的api

使用notarytool手动对dmg进行公正

9 月 11 日
阅读 1 分钟
241
notarytool-password和邮箱需要用双引号包起来notarytool-password在这里只是一个标识作用,随便起--apple-id为你的苹果开发者账号--team-id为证书别名,告诉公正工具去系统中找哪个证书--password为苹果专用密码,需要去苹果账号中心创建

用科学方法来解决复杂问题

9 月 11 日
阅读 1 分钟
173
有时候问题会复杂到让你摸不着头脑,然后忘记该如何解决,最后只得放弃。把当前的状况写下来当问题没有那么复杂时,最好的方法就是把它写下来,往往就在你写下来的时候,解决的方法就复现出来了。当前的进展已经得到的信息还需要获得的信息,以及如何获得这些信息解决复杂问题的步骤问题是什么(问题要发散,视角要宽,...

electron中采用配置文件,打包后路径变化的问题

9 月 10 日
阅读 1 分钟
352
问题:我们有如下代码,表示在当前目录下有一个json配置文件 {代码...} 在本地开发时,确实能正常工作,但是打包后,包的文件结构会发生变化,上面的路径其实已经不存在了,所以会导致打包后配置读取失败解决方案:使用electron的app.isPackaged区分是否为打包状态,然后使用不同的路径获取方式 {代码...}

vue3的生命周期

9 月 9 日
阅读 2 分钟
254
onBeforeMountdom未挂载,可以做一些不依赖dom的初始化操作示例场景:1 关键配置数据加载需要在渲染之前能够访问到这些配置数据 {代码...} 2 权限验证在某些情况下,你可能需要在组件渲染之前验证用户权限 {代码...} onMounteddom已经挂载,可以做一些依赖dom的操作,比如用访问dom示例场景:1 操作dom {代码...} 2 发起...

nodejs请求管理员权限执行多个批处理

9 月 8 日
阅读 1 分钟
209
{代码...} {代码...} {代码...} {代码...} 在批处理执行中索取管理员权限 {代码...} @echo和echo的区别不加@:显示命令和结果echo "hello" 输出为:echo "hello" hello加@:只显示结果,隐藏命令@echo "hello" 输出为:hello

异常处理策略

9 月 8 日
阅读 3 分钟
303
在前面的基础上添加业务逻辑,虽然没有崩溃,但是我们会发现,在getLogo已经失败的情况下,还是执行了copyLogoToDist,这显然是不合理的,我们的做法简单来说只是把异常吞掉了,这会导致后续逻辑在错误状态下继续执行,可能引发更严重的问题

nodejs中路径相关api

9 月 8 日
阅读 2 分钟
238
path.join将多个字符串参数拼接在一起 {代码...} path.resolve在path.join的基础上,返回绝对路径 {代码...} path.parse把一个字符串当成一个路径来解析 {代码...} path.dirname返回路径字符串的目录 {代码...} __dirname当前文件所在的目录 {代码...} process.execPathnodejs可执行文件的路径 {代码...}

常用的工具函数

9 月 2 日
阅读 1 分钟
189
创建一个延迟指定时间的 Promise {代码...} 测量传入函数的执行时间 {代码...}

uniapp中ios打包记录

9 月 1 日
阅读 1 分钟
245
.certSigningRequest证书请求文件来源:通过mac系统重的“钥匙串访问”工具生成用途:申请开发和发布证书的时候需要上传这个文件,此文件不区分开发和发布

如何在windows中我的电脑下添加一个程序启动入口

8 月 21 日
阅读 5 分钟
1.5k
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace

flex布局中flex-basis属性

8 月 17 日
阅读 1 分钟
453
该属性的取值数值、百分比autocontent数值、百分比指定数值、百分比,该元素的宽度为指定宽度flex-basis: 200px;flex-basis: 50%;auto指定auto,该元素的宽度为自身的width属性宽度,如果没有设置width,则为内容撑开的宽度flex-basis: auto;content指定content,该元素的宽度为内容撑开的宽度,它和auto不一样,auto会...

问题备忘

8 月 17 日
阅读 2 分钟
162
可能性2:编辑器启用了EditorConfig将EditorConfig禁用或者修改项目根目录中的.editorconfig,修改其中的配置项以关闭某些自动修改

文件/文件夹拖拽上传

8 月 11 日
阅读 2 分钟
461
event.dataTransfer.files 是一个 FileList 对象,包含了拖放事件中所有文件的列表。它非常适合处理单个或多个文件的上传。但是,如果用户拖放的是一个文件夹,event.dataTransfer.files 只会获取文件夹中的文件,无法用来递归地获取子文件夹中的文件和子文件夹。

flex布局常见问题

8 月 4 日
阅读 1 分钟
335
flex无法创建滚动条flex的孙元素使用overflow: auto无法出现滚动条原因:子元素没有设置宽度,这会导致子元素的宽度由孙元素决定,从而子元素被撑大,孙元素无法达到出现滚动条的条件。解决方案:给子元素设置宽度,比如width:100%;flex布局和文字溢出省略遭遇的问题[链接]

uniapp打包所需资料

7 月 19 日
阅读 1 分钟
245
流程开发者账号(要钱)appid(网页上生成)证书请求文件(需在Mac OS上使用 “钥匙串访问” 工具生成)开发证书(网页上生成)开发描述文件(网页上生成)创建appid创建证书请求文件创建开发证书添加调试设备收集uuid填入uuid创建开发描述文件选择appid选择证书选择设备生成

在centos中安装nginx

7 月 18 日
阅读 1 分钟
198
1 下载nginx压缩包下载地址:[链接]2 上传到centos中3 解压 {代码...} 4 进入解压后的目录 {代码...} 5 安装相关依赖工具 {代码...} 6 编译环境 {代码...} 7 编译安装 {代码...} 8 找到nginx安装的目录 {代码...} 9 进入nginx的安装目录 {代码...} 10 在nginx目录中进入执行文件目录 {代码...} 11 启动nginx {代码...} 1...

svg的使用方式

7 月 3 日
阅读 1 分钟
194
使用img加载 {代码...} 优点:使用简单缺点: 不能动态修改svg的样式