bind实现

bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。MDN bind

Read more

从零实现一个JS模块打包器

2019 年的前端技术栈,无论你是用 Vue 还是用 React ,应该都离不开一样工具 – webpack。webpack 极大的简化了前端开发的构建过程,只需提供一个入口文件,webpack 就能自动帮我们分析出相关依赖,构建出 bundle 包。

webpack 很强大,但是大家知道 webpack 到底是怎么样打包的吗?本文将从一个很简单的例子,一步步带领大家探寻 webpack 打包的基本原理。

Read more

API设计总结

本文总结了笔者近几年在参与设计 API 时收获的一些经验和教训,针对中小型项目初期,供大家参考。

设计角度

  1. 基础数据与用户数据尽量分离。
    分别用不同的字段存储或直接分到不同的 API里。
    逻辑解耦,便于后期修改,也便于优化打开速度。
Read more

React与安卓/iOS通信实践

安卓/iOS 可以调用 JS 侧的全局对象来完成通信,那么使用 React/Vue 的时候我们的方法都封装在框架内部,并没有暴露在全局,原生侧调不到框架内部的方法,怎么办?

使用 EventEmitter!

Read more

微信登录与注册流程分析

某日,天空飘来集成第三方微信登录/注册功能的需求,业务侧轻飘飘的一笔带过,表示这个需求很简单,点击登录,就 ok 了。笔者满脸黑线的表示这个功能想做的好,没有用户吐槽的话,需要考虑的情况非常多。以下便是笔者对该功能的需求分析。因文字描述达不到非常清晰地解释,所以以流程图的方式表示。

Read more

text-size-adjust bug 分析

某日,同事 J 说发现一个奇怪的现象:一个列表页,在 iPhone7 竖屏上字体大小正常,横屏的时候有些字体就变的特别大。本文便是笔者对这一 “bug” 的分析过程。

Read more

如何编写 Babel 插件

目前主流的前端框架在开发的时候都采用最新的 ES6+ 语法,大部分的向下兼容工作都交给了 Babel 来处理。通过引入 Babel 插件,我们可以大胆地使用最新或是正在起草中,甚至是根本不在标准中的 jsx 等语法,跟甚至是你自己胡诌的写法!

本文将带大家了解 Babel 是怎么工作的、Babel 插件是怎么工作又是怎么编写的,并写一个与 webpack 集成的最简单的 Babel 插件。

Read more