React Props Children 混合插槽 发表于 2021-09-09 本文字数: 75 阅读时长 ≈ 1 分钟 当多种 children 一起输入时function Container(props) { const defaultProps = { name: "alen", msg: "hello", } return props.children.map((item) => { // 通过判断 clone 混入props if (React.isValidElement(item)) { return React.cloneElement(item, { ...defaultProps }) } else if (typeof item === "function") { return item(defaultProps) } else { return null } })}function Child(props) { return <div>{props.name + props.msg} </div>}function App() { return ( <Container> // 多种方式混入 <Child /> {(props) => <Child {...props} />} </Container> )}render(<App />, document.getElementById("root")) 阅读全文 »
createObjectURL 发表于 2021-09-08 本文字数: 742 阅读时长 ≈ 3 分钟 createObjectURL 是什么 URL.createObjectURL() 静态方法会创建一个 DOMString,其中包含一个表示参数中给出的对象的 URL。这个 URL 的生命周期和创建它的窗口中的 document 绑定。这个新的 URL 对象表示指定的 File 对象或 Blob 对象。 — MDN 阅读全文 »
requestAnimationFrame思考 发表于 2021-04-08 本文字数: 890 阅读时长 ≈ 3 分钟 关于setTimeout首先要明白,setTimeout 的执行只是在内存中对元素属性进行改变,这个变化必须要等到屏幕下次绘制时才会被更新到屏幕上。如果两者的步调不一致,就可能会导致中间某一帧的操作被跨越过去,而直接更新下一帧的元素。假设屏幕每隔16.7ms刷新一次,而setTimeout 每隔10ms设置图像向左移动1px, 就会出现如下绘制过程(表格): 阅读全文 »