一种Tree组件的实现方式 发表于 2020-01-18 | RT,本文主要是为了介绍一种tree组件的实现方式,包含市面上tree组件的常见功能。后面会再专门研究element-ui中的tree内部实现。 数据结构这是组件最核心的部分,直接关系到各种特性实现的复杂度。 Tree本身这是用于渲染Tree自身的,通常需要上层业务中传入树形节点数据,例如: 123 ... 阅读全文 »
多语言排序 发表于 2019-12-25 | 在国际化业务中总有很多地方需要做本地化,比如地域列表在不同国家地区的展现,在英语国家更习惯A-Z的排序,国内更习惯拼音排序。再精细一些的业务场景中,会遵循专业翻译人员的意见给出更本地化的排序,比如法语、意大利中会有很多带音调的字母如Â、ñ、Ï。 本文会尝试手动实现这样的排序标准,看看其中有哪些坑,并 ... 阅读全文 »
rrweb源码解析1 发表于 2019-10-27 | 之前的文章有简单介绍rrweb的底层设计,这篇文章开始会记录rrweb的源码。rrweb的源码由 3 个仓库组成: rrweb-snapshot: 包含 snapshot 和 rebuild 功能。snapshot 用于将 DOM 及其状态转化为可序列化的数据结构;rebuild 则是将 snap ... 阅读全文 »
rrweb 底层设计简要总结 发表于 2019-10-27 | rrweb可以进行屏幕录制和回放,用它做一个用户自助反馈功能,可以大幅度降低 bug 反馈成本。 这里简要介绍它的核心内部设计,后续会研究它的源码以增加一些定制功能。 rrweb并不是真的在录制视频,而是将页面DOM序列化后记录下来,再利用反序列化还原成DOM来回放。 代码组成主要分为 3 个部分( ... 阅读全文 »
二维码原理 发表于 2019-08-05 | 前言前阵子在项目里用到了二维码的生成,当时直接拿了第三方库来做,觉得很神奇,恰好这两天有一点时间,就学习了一波底层原理。学习的过程中参考了好几个博客,不同的博客在不同的细节上写的比较好,趁着还没忘就趁热打铁记录在博客里。 二维码本质上是对字符串的编码规则,最终转换成二进制串。不过在这个串里加了各种辅 ... 阅读全文 »