
获得徽章 0
- 因为没有找到一个比较简单的 markdown 阅读器,用 Next.js 写了一个可以在线阅读 markdown 的网站,感觉 App Router 好像不是完全兼容 Pages Router 如果你想用 SPA 的某些功能的话
github.com。
等人赞过2638 - 评论点赞
- #每天一个知识点# ahooks 的 useAsyncEffect 使 useEffect 支持异步函数,isAsyncGenerator 判断异步函数的类型,如果是一个异步迭代器则一直执行直到异步函数返回最终的结果,否则则直接返回一个异步结果,这个 cancelled 没有看太明白,大概是在异步函数没有执行完后,组件被销毁后直接取消下一步的执行。展开赞过评论2
- #每天一个知识点# ahooks 的 useUpdateEffect 忽略第一次执行,在组件更新时执行。可以看到这里使用 isMounrted 的 ref 来保存组件是否为第一次渲染的状态,第一次执行后将 isMounted 设置为 true,组件卸载时将 isMounted 设置为 false。评论点赞
- #每天一个知识点# ahooks 的 useBoolean 切换布尔值的 hook,这里使用了 useToggle,用 useMeme 让这些函数不会重复被构造。评论点赞
- #每天一个知识点# ahooks 的 useToggle 在两个状态之间切换,这里使用 useMemo 使内部返回的对象值在初始化后保持不变,reverseValueOrgin 的默认值为 defaultValue 的 !Boolean 或自己设置的值,在 ahooks 里喜欢将 state 的值作为数组的 0 索引值,其他方法为一个对象作为数组的 1 索引值。展开评论点赞
- #每天一个知识点# ahoos 的 useSetState 自动合并对象类型的 state,主要是这个 setMergeState 函数使用 useCallblck 包裹并不需要依赖,避免重复构造此函数。判断参数是否为函数获取新的属性对象,将这个属性对象合并到 state 中。评论点赞
- #每天一个知识点# ahooks 的 useUnmountedRef, 获取当前逐渐是否被卸载,使用 useRef 存储逐渐是否卸载的信息,通过 useEffect 当组件加载是将 unmountedRef.current 赋值问 false,组件卸载时将 unmountedRef.current 赋值为 true。赞过评论1
- #每天一个知识点# ahooks 的 useUnmount 组件卸载时执行函数,这里使用 useEffect 在卸载时会执行effect 函数返回的函数,用的是一个箭头函数直接返回一个函数执行 fnRef.current 函数。这里的 useLatest 是为了获取最新的函数值。评论点赞
- #每天一个知识点# ahooks 的 useMount 在组件第一次渲染的时候执行相应的函数,相关的源码如下,一般看源码的时候我们主要关注主要功能,所以忽略 isDev 的相关逻辑。这个主要通过 useEffect 实现,useEffect 的第二个参数一个 [] 表明这个函数不依赖任何副作用,所以只会在组件第一次渲染是执行。赞过评论1