博客笔记 5

React 的 memo 问题

最近看了一些讲 useMemo 和 memo 的文章,感觉这两篇是讲的简练又清楚的,一个非常迷的事情是我们需不需要给所有的组件都用上 React.memo ,这个问题网上的博客没有一个定论,React 官方对于 memo 的态度也是很模棱两可的,意思是目前可以当作空间换时间的优化手段但是未来不排除修改实现方式的可能,我的理解不应该过多的依赖它,如果这种优化真的“完美无瑕”那么为什么 React 不作为一种默认的优化手段呢?

在明显影响用户体验的情况下再进行性能优化,这样减少了开发成本,也避免了之后如果 React 之后使用了更好的默认优化手段的时候可以兼容,否则代码到处都是 React.memo ,维护起来可能比较困难。

Yarn 安装与使用详细介绍

Yarn 主要是为了解决一些 npm 产生的痛点,比如 npm 下载的依赖版本不确定,不支持并行下载速度慢等等。博客介绍了一下 yarn 的常用命令。

WAI-ARIA basics

一些有关于无障碍阅读和 HTML 5 语义化内容的东西,主要是帮着做无障碍和 SEO 的。

提高网页可访问性的十条建议

一些提升网页可访问性的建议,写的挺不错的,可以仔细看看。

响应式 - 使视频自适应于屏幕宽度

网页视频资源的响应式写法,让网页视频资源自动适应屏幕大小。

离线 Web 应用

HTML 5 有一些针对离线 WEB 应用的支持,需要的时候可以仔细研究一下。

移动 web 1像素边框

学习 Three.js 的时候看见讲高分辨率屏幕适配的问题,然后去搜索时候看到高分辨率屏幕主要都是讲边框宽度出问题的,这篇写得比较好。

使用 chrome 调试

Debug JavaScript

谷歌官方写的调试技巧,值得一看,感觉整个 Chrome DevTools 文集都值得一看,妥妥的好东西。

防抖和节流

之前只注意防抖和节流写法,就是 setTimeout ,但是没有注意到防抖和节流之间的区别,防抖是执行一段时间的最后一次,使用 clearTimeout 来清除之前还没有来得及执行的。

节流则是在还有未执行的事件将接收到的“丢弃”,执行的是一段时间内最早的那一个。

例如输入验证码,调整窗口这样只需要最后一次结果的就是防抖,其他“无差别”的操作,例如滚动窗口、点击按钮就是节流。

lodash 中文学习拾零之 Chain 篇

最近在看 JavaScript 的函数式编程,然后学习了很多 lodash 库的很多接口,链式调用这个东西还是比较灵魂的,值得去多学习一下。要用好链式调用,需要比较清楚的了解各个函数的返回值,是不是修改传入的参数等等。

maxin 解释

很多写的神乎其神,其实非常简单。

就是说只能继承一个父类,但是有一些多个类都会实现的方法需要我们实现,我们就把这些方法打个包,然后我们组合这个包。

这个文章里面写的例子非常好,三两句话就解释了。

Immutable.js 的缺点

最近看的书里面对 Immutable 这个库赞许有加,我看了一下觉得想法也挺好,但是为什么没有铺开用呢,我觉得这几篇博客说的比较明白:

总结下来就是这种数据有兼容问题,和 ES 6 配合不是很好,和 Redux 配合也不是很好。