Open post Go Scripts

使用脚本整合指定文件/文件夹,执行定制化 ESLint 命令

背景

最近面对一个庞大的项目,但是只需要修改某个模块,每次都手搓命令太麻烦了,于是就想着能不能写个脚本来辅助处理这些事情。

解决方案

定制化一键 ESLint,执行文件下载地址:

https://github.com/mazeyqian/go-gin-gee/releases/tag/v1.4.0

"使用脚本整合指定文件/文件夹,执行定制化 ESLint 命令"继续阅读

前端性能和加载体验优化实践(附:PWA、离线包、内存优化、预渲染)

探讨了页面加载卡顿的原因并提出了多种优化方法。主要原因包括项目包或第三方脚本过大、JavaScript 执行阻塞页面加载、图片体积大且多等。优化策略包括构建缩包按需加载、减少图片体积等。文章还详细介绍了如何通过 Webpack 插件分析项目中用到的 npm 包及大小,以及如何通过调整图片尺寸、格式转换、压缩等方式减小图片体积。

读书笔记:《数据可视化实战:使用D3设计交互式图表》 – [美] Scott Murray 著 / 李松峰 译

读完时间:2021 年 11 月 4 日

出版时间:2020 年 9 月

5.2 绑定数据

数据可视化说到底就是把数据映射成图形——输入数据,输出图形。

D3 绑定的数据没有出现在 DOM 中,而是作为该元素的 data 属性保存在内存里。

可以把 d 想象成一个寂寞的小占位值,它需要一点温暖,包括来自和蔼可亲的函数圆括号的拥抱。

"读书笔记:《数据可视化实战:使用D3设计交互式图表》 – [美] Scott Murray 著 / 李松峰 译"继续阅读

迭代器(Iterator)和生成器(Generation)

一、用生成器给对象定义迭代器

常规方法

const obj = {
  a: 1,
  b: 2,
  c: 3,
  [Symbol.iterator]() {
    let [index, values] = [0, Object.values(this)]
    return {
      next() {
        const done = (index >= values.length)
        const value = done ? undefined : values[index++]
        return {
          done,
          value
        }
      }
    }
  }
}
for (let v of obj) {
  console.log(v) // 1 2 3
}

"迭代器(Iterator)和生成器(Generation)"继续阅读