响应式布局实战

响应式布局(Responsive Layout)是指能够针对不同屏幕尺寸、分辨率做出合理布局和样式调整的一整套解决方案。经常会看到一些网站,在 PC 端放了一大堆功能,切换到移动端后整体样式大变样,功能也被阉割不全。又或者一个移动端的网站,在 PC 端点开,字体无比巨大,按钮遮住大部分页面,严重的甚至无法正常浏览。笔者之前写过一篇《基于媒体查询和 rem 的响应式布局实践》,现在看来有一些细节没有覆盖到,于是便有了本文。本文将通过几个典型的实战页面,将笔者在响应式布局上的一些经验分享给大家。

阅读更多

bind实现

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

阅读更多

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

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

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

阅读更多

API设计总结

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

设计角度

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

React与安卓/iOS通信实践

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

使用 EventEmitter!

阅读更多

微信登录与注册流程分析

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

阅读更多