• git 换行符设置

    作者:lithoge 创建时间:2023-07-10 14:56:03

    git 换行

    提交时转换为LF,检出时转换为CRLF 提交时转换为LF,检出时不转换 提交检出均不转换

    阅读全文
    128
    /
    0
    /
  • Eslint 保存自动修复

    作者:lithoge 创建时间:2023-06-14 20:24:20

    eslint

    Eslint 这个功能一直要用,配置新的项目老时记不住,搜网上总是搜索到旧版本的配置。 特此在这里保存一下

    阅读全文
    77
    /
    0
    /
  • electron 安装镜像地址

    作者:lithoge 创建时间:2023-03-12 00:57:54

    electron

    electron 安装地址(国内淘宝镜像,防止网络原因安装失败)

    阅读全文
    146
    /
    0
    /
  • Nginx 正向代理配置

    作者:lithoge 创建时间:2023-02-09 15:41:28

    nginx 代理服务器

    记录一下 nginx 正向代理配置

    阅读全文
    167
    /
    0
    /
  • Vue 3 中使用 JSX 如何绑定 scopeId

    作者:lithoge 创建时间:2023-02-07 18:47:55

    vue3 scopeId

    前言 在特定情况下,我需要在 SFC 组件中使用 JSX 的方法进行部分页面内容处理,但是在默认的情况下,JSX 并不会带 scopeId,这导致我不能通过 scope css 的方法修改 JSX 的样式。在 jsx 这个插件的 github issues 中,查找到了在组件中带上组件 scopeId 的方法,虽然略显累赘,但终归是可以用。 方法 在 vue 中,导出对象有 withScopeId 这样一个函数,它可以传递一个 参数1:scopeId 前组件的 scopeId 执行后,它会返回另一个函数 withCtx。 这个 withCtx 函数可以传递两个参数,执行后返回 renderFnWithContext,它的返回值是一个带 scopeId 的 VNode。 参数1:fn jsx 函数,签名 () => JSX.Element 参数2:ctx vue 实例,ComponentInternalInstance | null | undefined 至此,我们的 JSX 就带上了 scopeId。 封装成成一个简单的 hooks 供调用 hooks.ts samp

    阅读全文
    300
    /
    0
    /
  • JavaScript 基础知识复习一

    作者:lithoge 创建时间:2023-01-04 17:32:40

    Number.MAX_SAFE_INTEGER 最大安全整数 Number.MAX_SAFE_INTEGER 是 number 类型能表示的最大安全整数,为 9007199254740991,如果数字大于这个数,就会不再精确,比如常见的情况是,后端用 long 类型定义 id,因为 long 类型最大值是 9223372036854775807,这个数比 JS 的最大安全整数大很多,如果后端用了比 Number.MAX_SAFE_INTEGER 大的数作 id,前端在接收到 JSON 字符串,并格式化后,就会丢失精度。 解决方案是让后端用 String 类型传递 id。 如果是在前端需要对这么大的数进行运算,可以引入第三方库(如 decimal.js)处理,也可以用 JS 新数据类型 BigInt 进行处理。 相关知识:Number.MIN_SAFE_INTEGER 最小安全整数、Number.EPSILON 最大浮点误差值

    阅读全文
    268
    /
    0
    /
  • sessionStorage 的继承

    作者:lithoge 创建时间:2022-12-28 22:20:52

    sessionStorage

    前言 在现代浏览器中,sessionStorage 存储的内容,一般情况下只可以在当前打开的 tab 页使用。但这样也存在问题,用户打开其他的页面那就没有 sessionStorage 了? 测试 其实,sessionStorage 有一套 “继承” 的机制,使得不同 tab 页中可以传递。以下测试研究 sessionStorage 的 “继承” 机制。(sessionStorage 不支持跨域,跨域了在任何时候都不能 “继承”,下面的测试都是同域测试)。 1. a 标签直接跳转 通过这种方式,其实 tab 并没有变化,这并不存在 “继承” 的问题,原来的 sessionStorage 依然可用。 2. a 标签设置 target="_blank" 跳转 这种方式会导致 sessionStorage 丢失,也就是并不能 “继承”。 3. window.open() 方法跳转 这种方法可以 “继承” 源页面的 sessionStorage。 测试总结 可以看到,当前 tab 页打开链接,不存在需要 “继承” 的问题,这很好理解。因为 tab 与 sessionSto

    阅读全文
    339
    /
    0
    /
  • JavaScript 实现树状数组构造函类

    作者:lithoge 创建时间:2022-12-21 21:38:54

    树状数组 JavaScript

    在力扣上刷题时,遇到非常有意思的一种数据结构,可以方便计算前缀和的同时,还可以进行单点更新。它就是树状数组。 在网上并没有搜索到太多树状数组的 JavaScript 相关代码,所以在这里自己动手实现一个树状数组类。

    阅读全文
    270
    /
    0
    /
  • shift 和 unshift 函数的时间复杂度问题

    作者:lithoge 创建时间:2022-12-08 20:11:42

    测试 关于在数组中使用 shift() 和 unshift() 方法,基于数组的特性,相较于 pop() 和 push() 方法应该是会存在时间复杂度上的劣势的。 下面就用代码验证一下自己的想法: 通过轮流注释下面几行代码,就得出了,以下结果 方法 次数 多次运行平均时间 unshift 1000 29ms unshift 10000 315ms shift 1000 27ms shift 10000 242ms push 1000 0ms push 10000 0.5ms pop 1000 0ms pop 10000 0.5ms 总结 因为数组是在有序排列的数据结构,在进行 unshift() 和 shift() 操作时,需要在数组的开始位置插入或删除元素,导致整个数组的其他元素均需要移动,这样就导致了需要大量时间进行数组元素移动操作,时间复杂度为 O(n)。 在开发中如果需要进行长度较大的数组进行操作,应该尽量避免大量使用 unshift() 和 shift() 操作。不过也不必太过于严格规避,毕竟大多数时候并没那么大长度的数组,而且如只

    阅读全文
    319
    /
    0
    /
  • 快速排序中的 partition 函数

    作者:lithoge 创建时间:2022-11-30 21:10:34

    写了很多次 快速排序,每次都要在 partition 函数这里卡很久, 经过多次总结,发现这样写的 partition 函数最简洁。自己 Mark 一下。

    阅读全文
    203
    /
    0
    /
  • 1
  • 2
  • 3
  • 4
  • 5