Charles mock 数据
Charles mock 数据,眼看着 Charles 抓到的包都是正常的,可是浏览器中间就是收不到响应。忽然回忆起,跨域实际上是浏览器本身做的一个限制,为用户的安全,及时收到数据也不返回。考虑到可能是跨域的问题,开了禁止跨域的浏览器,解决。
position: fixed 问题
fixed
的元素不一定相对视口定位。在祖先元素中出现某些特定属性时,会相对于该祖先元素定位。
相关文章:fixed 定位失效 | 不受控制的 position:fixed
写全局组件的方法
如常见的 Modal
弹窗,之前一直都会在组件中设置一个 modalShow
的值,用来在组件内控制 Modal
组件的显示/隐藏。最近忽然意识到,其实可以更加方便。直接 ReactDOM.render
Modal
组件,然后将其插入某节点即可。不需要依赖组件内部的某个值来显示隐藏。详见:Modal 组件
Flex 做到子元素无条件等分空间
不知道我的做法对不对劲……毕竟是自己想到的。众所周知,Flex 布局中,子元素会先占据自己应有的大小,然后再等分剩余空间。导致子元素如果自然状态时大小并不一样大,则无法真正做到等分父元素。因此,可以给所有子元素设置 width: 100%
。这样,所有子元素都会同样大小自然等分父元素。
触底定位不准
奇怪的一加手机:
1 | // 视窗到网页底端的距离,为 0 即为触底 |
Number.parseInt
低版本浏览器不支持 Number.parseInt
,但是支持 window.parseInt
。
webview 中刷新页面
前端在 webview 中刷新页面的行为是不可靠的,部分机型前端没有刷新页面的权利,需要客户端来刷新。
create-react-app 升级后问题
create-react-app 最近应该是进行了升级,和我几个月前拉的代码完全不一样。有两个小坑:
- eject 项目后会报缺包错误,按照它的错误提示装三个包就可以了;
- css module 不再默认开启,看 webpack 配置代码会发现,文件名为 ‘xxx.module.css’ 的文件才会开启 css module,否则会报一个根本完全看不出来是因为没有开启 css module 的错误。真的完全看不出来,从字面意义上看,完全就是在告诉你另一回事……
fastclick 造成的坑
- ios 引入 fastclick 会导致 contenteditable 的元素无法正常聚焦。表现为非常不灵敏,需要长按才能聚焦。
React Hooks 闭包问题
setTimeout 之类的闭包问题可能就必须用 ref 一类的方式解决。但是事件监听方法不必要啊!
你下意识地将元素的 dom 实例取出,用原生事件绑定。这样回调方法永远是绑定时候创建的那一个,就触发了闭包问题。
实际上,应该直接在元素上面绑定事件监听方法。这样每次渲染,都创建了一个新的回调方法,这个方法所获取的值就一直都是最新的。
就不存在闭包问题了。
mobile safari 点击事件失效
部分不可点击的元素,需要明确指定 cursor: pointer 才可以。