CRA 构建 React 与 TypeScript 开发环境
Create-React-App(CRA) 是 Facebook 推出的脚手架工具用于构建 React 开发环境,快捷简单零配置推荐使用这个脚手架来构建 React 应用(至于我搭的 Y…
clientHeight、scrollHeight、offsetHeight 的区别
clientHeight 内容区域的高度加内边距,不包括边框和滚动条 scrollHeight 内容区域高度加上溢出容器的高度,即滚动的高度加内边距,不包括边框和滚动…
通过写 on-change 库理解 JavaScript Proxy
JavaScript 中的 Proxy 是 ES6 的新语法,可以利用这个强大的特性来优雅的解决各种问题。这篇文章里通过写一个 on-change 库从而理解 Proxy。所以 on-…
get 和 post 区别
传参方式,get 通过 url query 传参,post 通过 request body get 可以进行缓存,post 不行 get 有 url 长度限制,post 传参客户端不限制大小 get 适…
如何拦截 for ...in 操作
可以使用 ownKeys const obj = { name: 'Alice', age: 20, gender: 'female' } const handler = { ownKeys(target) { const keys = Reflect.ownKeys(t…
浏览器内核和JS引擎
浏览器内核: Trident:微软IE浏览器的内核。 Gecko:Mozilla Firefox 浏览器的内核。 WebKit:苹果 Safari 浏览器和 Google Chrome 浏览器的内核。 Bl…
link 与 @import 的区别
link 是 html 标签,@import 是 css 中的语法 加载方式上,link 是页面加载时同时加载, @import 是页面载入完成后加载 link 可以同时加载多个样式表…
useRef 和 ref 的区别
useRef 和 ref 都可以用来获取组件的实例或者 DOM元素 useRef 是 React 提供的一个 hook,可以创建一个可变的对象,在函数组件中进行使用,useRef 创…
TS 中的 as 与 is
as 的作用: 类型断言 类型转换 is 的作用: 类型保护的作用 function isPerson(value: any): value is Person { return value && typeof value…