Javascript

如何实现类似 lodash 的 get 与 merge 函数

lodash 基本上成为了写 javascript 工具库的标配,它广泛应用在各种服务端以及前端应用中,但是它的包体积略大了一些。对于服务端来说,包的体积并不是十分的重要,或者换句话说,不像前端那样对包的体积特别敏感,一分一毫都会影响页面打开的性能,从而影响用户体验。

正因为前端包体积对于用户体验的重要性,因此有各种各样减小包体积的方法。针对 lodash 来说,你完全不必要引入 lodash 的所有工具函数,你只需要按需引入或者直接使用单函数包。关于按需引入你可以参考以下文章

Lessons on tree-shaking Lodash with Webpack and Babel

在针对我的个人站点中的 lodash 进行优化时,如果没记错的话,lodash 从以前 gzip 后的 80KB 变为了 20KB,相对来说还是比较大。而当我全局搜索了 lodash 的引用之后,发现 90% 的场景都是在使用 _.get

另外,随着 ES6+ 的发展,以及浏览器与 Node 对它的支持,很多 lodash 的函数都很容易自己来实现或者说已被实现,如 _.assign_.trim_.startsWith 等等已被 ES6+ 实现,而 _.uniq 又很容易通过 new Set() 来解决。有人就在 github 上总结了 you-dont-need/You-Dont-Need-Lodash-Underscore,其中囊括了很多工具函数很简易的实现。

浏览器中的二进制以及相关转换

浏览器中的二进制以及相关转换

最近工作中遇到了很多有关二进制的处理,如PDF的生成,多个PDF的打包,音频的拼接。为了数据的一致性,以及减少与后端通信的复杂度,工作量都在浏览器端。

浏览器,或者前端更多处理的是 View 层,即 UI = f(state),状态至界面的转化。但是也有很多关于二进制的处理,如

  • 下载 Excel
  • 文档生成 PDF
  • 对多个文件打包下载



如何使用 docker 高效部署前端应用

docker 变得越来越流行,它可以轻便灵活地隔离环境,进行扩容,方便运维管理。对开发者也更方便开发,测试与部署。

最重要的是, 当你面对一个陌生的项目,你可以照着 Dockerfile,甚至不看文档(文档也不一定全,全也不一定对)就可以很快让它在本地跑起来。