[源码阅读]基于Canvas+贝塞尔曲线算法的平滑手写板

2019-06-18
阅读 4 分钟
5.3k
一种比较容易做出的是对鼠标移动轨迹画点,再将两点之间以直线相连,最后再进行平滑处理,这种方案不需要什么算法支持,但同样,它面对一个性能和美观的抉择,打的点多,密集,性能相对较低,但更加美观,视觉上更平滑;

[源码阅读]纯粹极简的react状态管理组件unstated

2018-12-08
阅读 7 分钟
3.7k
更加灵活(相对的缺点是缺少规则,需要使用者的自觉)redux的状态是存放在一棵树内,采用严格的单向流 unstated的状态是用户自己定义,说白了就是object,可以放在一个组件的内,也可以放在多个组件内

[源码阅读]通过react-infinite-scroller理解滚动加载要点

2018-11-25
阅读 5 分钟
10.1k
react-infinite-scroller就是一个组件,主要逻辑就是addEventListener绑定scroll事件。 看它的源码主要意义不在知道如何使用它,而是知道以后处理滚动加载要注意的东西。 此处跳到总结。 初识 参数: {代码...} 深入 componentDidMount {代码...} 执行attachScrollListener attachScrollListener {代码...} 此处通过getP...

[源码阅读]高性能和可扩展的React-Redux

2018-11-19
阅读 14 分钟
4.8k
我们使用时,当写完了redux的reducer, action, bindActionCreators, combineReducers, createStore这一系列内容后,我们得到了一个store

如何通过AST树去获取JS函数参数名

2018-09-18
阅读 4 分钟
5.4k
最近项目有个需求,获取函数参数名,听起来很简单,但有了ES6,参数和函数写法千奇百怪,在github上大概看了几个库,基本上都是正则,对通用的写法能够覆盖,稍微越过边界,往往无法正确匹配。

[源码阅读]解析Anime(JS动画库)核心(2)

2018-09-13
阅读 4 分钟
2.8k
本次解析将分为2篇文章,当前是第二篇,第一篇在这里 另外,为了能更好的理解这个库,个人写了一个此库的压缩版,实现了核心的功能(主要也是为了更好理解核心功能),内容更少方便阅读,地址在这里 继续上一篇,先把结构图拉过来: {代码...} setAnimationsProgress(省略了一些配置的定义) 这个函数接受一个参数,就是当...

[源码阅读]解析Anime(JS动画库)核心(1)

2018-09-13
阅读 6 分钟
4.3k
anime一个JS轻量动画库,摒弃了常规的left,top属性,全面采用requestAnimateFrame+CSS3属性能充分调用设备进行GPU渲染。

[源码学习]前端缓存工具fast-memoize和nano-memoize

2018-09-07
阅读 3 分钟
2.3k
至今天(2018年9月7日),这2个工具的实现源码思想是极其相似的,基本上,只要阅读了其中一个源码,也就了解了另外一个的实现。 fast-memoize导图: 初识 大概说说它们的实现思路: 定义缓存结构,其中fast使用了无prototype的对象,nano使用了普通对象。 定义序列化方法:当检测到是单参数时,都是选择JSON.stringify,而...

阅读ant-design源码_Button

2018-06-09
阅读 7 分钟
4.1k
Button组件 整体 Button组件 主要是通过改变state状态,从而渲染时应用不同className来改变外观 检查是否只有2个中文字符,例如 "提交", 检查到则会变更state中的属性,再次渲染时就会变为 "提 交" componentWillReceiveProps中会检查是否需要loading状态 渲染的dom中绑定了click,通过setTimeout方法延迟执行click动画...