掘友等级
获得徽章 0
因为没有找到一个比较简单的 markdown 阅读器,用 Next.js 写了一个可以在线阅读 markdown 的网站,感觉 App Router 好像不是完全兼容 Pages Router 如果你想用 SPA 的某些功能的话 github.com。
#每天一个知识点# ahooks 的 useDebounceFn 封装的 lodash 的 debounce 的一个 hook,这个主要是这个 debounced 变量 lodash.com
#每天一个知识点# ahooks 的 useAsyncEffect 使 useEffect 支持异步函数,isAsyncGenerator 判断异步函数的类型,如果是一个异步迭代器则一直执行直到异步函数返回最终的结果,否则则直接返回一个异步结果,这个 cancelled 没有看太明白,大概是在异步函数没有执行完后,组件被销毁后直接取消下一步的执行。
#每天一个知识点# 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。
#每天一个知识点# ahooks 的 useUnmount 组件卸载时执行函数,这里使用 useEffect 在卸载时会执行effect 函数返回的函数,用的是一个箭头函数直接返回一个函数执行 fnRef.current 函数。这里的 useLatest 是为了获取最新的函数值。
下一页