大型项目数据状态管理摸索

2022-03-07
阅读 4 分钟
1.3k
故事发生在一周前,我在segmentfault在线编辑文章,写了差不多两个小时,在贴了一张图片失败之后,然后ctrl+z撤销了一步,结果整个文档被瞬间清空了,编辑器还自动保存了清空态。

其实泛型很简单

2022-02-17
阅读 2 分钟
1.6k
TypeScript泛型介绍介绍官网说的很详细了,其实泛型就是 对类型进行 编程的东西,一点也不复杂,会写代码函数的都很好理解。想学好泛型,只需要掌握两点基础知识即可:

怎么写好代码?

2021-12-08
阅读 2 分钟
878
这个题目看起来非常具体,局限思维之后,就是一个从事IT行业的人士编码人员考虑的问题,进一步讲,看到这个题目的开发者会再次把自己限制在自身的编程领域,编程语言内部,比如如何写好java,如何写好javascript,等等。

javascript实现网页截图导出方案

2021-10-22
阅读 2 分钟
9.2k
首先,我们必须明白正常javascript是运行在浏览器里的,本身没有截图的能力。所以要想实现截图,必须通过其他迂回方案实现,废话少说,直接上结论。

可视化引擎antv系列之分面Facet(二)

2021-09-26
阅读 2 分钟
2.5k
分面(Facet)是指利用 G2 提供的 View 递归嵌套能力,将一份数据按照某个维度分隔成若干子集,然后创建一个图表的矩阵,将每一个数据子集绘制到图表矩阵的窗格中。

可视化引擎antv系列(一)

2021-07-26
阅读 4 分钟
5.1k
5年前的时候,接触过一点可视化开发,因为要做用户画像,那个时候很自然了选择了百度的echarts,感觉很酷炫,很好用,纯配置写法。当时可选择的可视化引擎大概有echarts,d3,hightcharts等,相比,echarts文档最全,最易上手,功能也最强大。不过大概也就是用用api的程度,就没有然后了,感觉做的东西还花里胡哨的很好看。

React错误边界

2021-06-23
阅读 1 分钟
2.4k
在日常业务开发过程中,我们对于业务本身的需求实现投入了大量的关注。对于程序的异常处理可能投入精力比较少。然而对于一个程序的健壮性来说,异常处理是非常非常重要的部分。错误边界这是React16版本以后,官网提供的一种错误降级处理方案。

table的宽高属性不支持小数渲染 - 奇葩

2021-05-21
阅读 2 分钟
1.9k
事情发生在半个月前,当时正在开发一个Table组件。Table的body使用div作为单元格渲染出来的,header部分使用原生table标签渲染的,结果宽度适应的时候,header 和body 总是无法同步对齐,有几个像素的误差。最后发现了是浏览器渲染table相关元素的时候,不支持小数渲染。

大数据列表渲染系列(三)可变尺寸

2021-04-25
阅读 5 分钟
1.4k
想想尺寸大小不固定 和 上一节的固定尺寸有那些异同?考虑一下,我们发现整个流程逻辑都是一样的,除了计算 每个元素定位的时候,因为尺寸不一样,导致的计算方式不一样。尺寸不一致要求我们去遍历累积计算每一个元素真实的大小和位置。简单说就是在 固定尺寸的基础实现上,更新一下 辅助计算函数。

大数据列表渲染系列(二)极简实现

2021-04-25
阅读 7 分钟
1.5k
本节,我们实现一个极简版的虚拟列表,固定尺寸的虚拟列表,麻雀虽小,却是五脏俱全哦!需求实现一个固定尺寸的虚拟渲染列表组件,props属性如下: {代码...} 使用方式: {代码...} 实现什么技术栈都可以,这里项目使用的react,那就选用react来实现。初始化项目使用create-react-app初始化一个应用,然后启动,清理掉dem...

大数据列表渲染系列(一)理论分析

2021-04-25
阅读 1 分钟
1.9k
虚拟渲染并不是什么复杂技术,在其他界面渲染领域内,早已是个基本操作,比如游戏开发等,大世界地图渲染基本都是区域绘制,视界之外的不做绘制。嗯,说起来简单,具体到业务场景还是非常复杂的,Table涉及单元格操作,下面逐步分析一下流程。

axios增强版封装

2021-03-03
阅读 10 分钟
3.3k
概述axios库本身已经很好使用了。但是具体到业务层面,会涉及到几个非常高频触发的情景需要提取处理。最常用的可能如下:取消重复的请求。(频繁操作或者state频繁更新导致组件频繁render触发的多次重复请求)失败自动发起重试。(由于网络波动或者服务器不稳定原因,重发可提高成功率的情况)自动缓存请求结果。(对于实...

如何实现动画过渡效果?

2021-02-04
阅读 14 分钟
3.3k
目前大部分网页应用都是基于框架开发的,比如Vue,React等,它们都是基于数据驱动视图的,那么让我们来对比一下,还没有这些框架的时候我们如何实现动画或者过渡效果,然后使用数据驱动又是如何实现的。

pie图轴标签label防重叠

2021-01-21
阅读 2 分钟
2.1k
数据可视化开发的时候,经常会用到饼图pie,那么轴标签一般必不可少,如何使用了像echarts等库,自带解决方案。可是我们不一定会用库,像d3提供了很多基础svg绘制能力,label就需要自己绘制,这个时候就需要处理label防重叠。网上相关的答案比较少,也都不智能,数据一旦异常聚集就会出现问题。经过思考,下面给出一种比...

axios的cancelToken取消机制原理

2021-01-19
阅读 2 分钟
10.8k
最近封装axios,使用到取消机制,发现使用非常简便,那么axios是如何实现的呢?简单研究了一下使用方式axios 如何取消一个请求提供了两种使用模式:第一种 调用CancelToken的静态方法source {代码...} 第二种 自己实例化 {代码...} OK,可以看到使用非常简单,两种使用方式道理是一样的,分两步:获取cancelToken实例,...

babel7 重新理解

2019-06-03
阅读 3 分钟
3.4k
Babel 是一个工具链,主要用于将 ECMAScript2015+版本的代码转换为向后兼容的 Javascript 代码,以便能够运行在当前和旧版本的浏览器或其他环境中。

转盘抽奖脚本自己撸

2018-08-13
阅读 10 分钟
4.4k
很多场景都需要做各种活动,抽奖最是司空见惯了,跑马灯的,转盘的,下面先花几分钟撸出一个转盘的吧,当然网上至少有一打的 demo 可供参考。真的只需要一点点时间而已。

Promise函数then的奥秘

2018-07-27
阅读 3 分钟
3.5k
Promise的then方法可以接受前一个函数的执行结果,还可以保证另一个Promise的顺序执行,这到底是怎么做到的呢? 原理图(先上图) 问题需求 如何保证多个 promise 顺序执行?实例: {代码...} 当然如果要并行的话,我们很容易想到 Promise.all 方法: {代码...} 如果要顺序执行: {代码...} 那么问题来了,then是如何做到顺...

promise原理探究

2018-07-27
阅读 3 分钟
1.8k
早闻Promise的大名,简单介绍,根据状态改变来执行相应处理函数。Promise的状态极其简单,只有 "pending", "resolved", "rejected"三种状态然后就是如何实现的问题,最关键的当然是监听到状态的更新,然后才能做出回应,那么如何知道状态变了呢?最初单纯的我开了一个脑洞,有以下想法: