在 Vue3 的浪潮中,Composition API 以其灵活和强大的能力,成为了前端开发中的一股新潮流。
然而,当 React 开发者转战 Vue3,他们可能会发现现有的 Hooks 库,如 VueUse,并不完全满足他们的需求。
今天,我们就来聊聊一个替代方案——VueHooks Plus。
从 React Hooks 到 Vue Hooks作为一名从 React 转战 Vue 的开发者,我对 Hooks 的强大功能有着深刻的体会。
在 React 中,ahooks 是我经常使用的库,它丰富的功能让我在业务开发中游刃有余。
但在 Vue3 中,我发现 VueUse 的 useFetch 和 useAxios 功能相对单一,比如缺少一些 防抖、节流、轮循、缓存&SWR 等高级功能。
为了解决这个问题,我选择了 VueHooks Plus。
这是一个基于 Vue3 特性开发的 Hooks 库,它不仅包含了 ahooks 的所有功能,还提供了更多 Vue 特有的优化。
优势分析
就拿 useRequest Hooks 来说, VueHooks Plus 中提供了很多高级的功能,目前已有能力包括:
自动请求/手动请求:参数化配置控制请求自动、手动轮询:轮询模式,定时触发请求防抖:参数化配置,进入防抖模式节流:参数化配置,进入节流模式屏幕聚焦重新请求:在浏览器窗口 refocus 和 revisible 时,会重新发起请求错误重试:通过参数配置指定错误重试次数,useRequest 在失败后会进行重试loading delay:延迟 loading 变成 true 的时间,有效防止闪烁缓存:请求成功的数据缓存起来SWR(stale-while-revalidate):如果有缓存数据,我们会优先返回缓存数据,然后在背后发送新请求滚动加载和分页加载:提供滚动加载和分页加载的能力并行请求:赋予 useRequest 并行请求的能力插件化能力支持
并且 useRequest 还支持外置扩展插件的功能,可以根据自己的需求来自定义插件,目前官方已经提供的插件能力有:
全局请求状态管理插件:充当所有请求的状态中间态,用户可以在中间态中对收集的请求结果进行操作。同源跨窗口广播插件:相同来源的浏览器选项卡/窗口之间数据的广播和同步当然,VueHooks Plus 还提供了很多其它的 Hooks 函数供大家使用,有兴趣的同学可以访问官网探索更多功能:https://inhiblabcore.github.io/docs/hooks/
VueHooks Plus:更全面的解决方案使用简单快捷
npm 一键安装:
npm i vue-hooks-plus提供多种引入方式,支持全量引入、按需引入:
// 全量引入import { useRequest } from 'vue-hooks-plus'// 按需引入import useRequest from 'vue-hooks-plus/es/useRequest'并且支持使用 unplugin-auto-import 插件自动引入:
npm i -D @vue-hooks-plus/resolversimport AutoImport from 'unplugin-auto-import/vite'import { VueHooksPlusResolver } from '@vue-hooks-plus/resolvers'export const AutoImportDeps = () => AutoImport({ imports: ['vue', 'vue-router'], include: [/\.[tj]sx?$/, /\.vue$/, /\.vue\?vue/, /\.md$/], dts: 'src/auto-imports.d.ts', resolvers: [VueHooksPlusResolver()], })高性能的逻辑封装
VueHooks Plus 以其高性能的逻辑封装而著称,它不仅提供了基础的 Hooks,还涵盖了高级的抽象封装,满足从简单到复杂的各种开发场景。
简洁易用的语法
VueHooks Plus 的语法设计简洁直观,易于理解和使用。无论是新手还是经验丰富的开发者,都能快速上手并融入到项目开发中。
TypeScript 支持
使用 TypeScript 构建的 VueHooks Plus 提供了完整的类型定义文件,这不仅增强了代码的可读性和可维护性,同时也确保了开发过程的类型安全。
交互式 Demo 演示
VueHooks Plus 提供了交互式 Demo 演示,让开发者能够直观地看到 Hooks 的使用效果和工作流程,极大地提高了学习效率。
服务器端渲染(SSR)支持
对于需要 SSR 的应用,VueHooks Plus 提供了友好的支持,确保了在服务器端渲染时的兼容性和性能。
基于插件模式的useRequest
VueHooks Plus 的 useRequest 是基于插件模式设计的请求函数,它不仅支持基本的请求功能,还允许开发者通过插件扩展其功能,如自动刷新、防抖、节流等。
按需加载和包体积优化
VueHooks Plus 支持按需加载,这意味着开发者可以根据项目需求加载所需的 Hooks,从而优化最终的包体积,加快应用的加载速度。
丰富的 API 和配置项
useRequest 提供了丰富的 API 和配置项,包括但不限于请求触发方式、参数、成功和错误回调、以及高级功能如 loading delay 和 SWR 策略。
插件化:灵活的功能扩展
插件化是 VueHooks Plus 的一大亮点。开发者可以根据自己的需求,轻松地添加或修改插件,实现功能的定制化扩展。
VueHooks Plus 为我们提供了一个功能全面、灵活且易于使用的 Hooks 解决方案。如果你正在寻找一个能够提升开发效率和代码质量的工具,那么 VueHooks Plus 绝对值得一试。
参考链接:官方文档:https://inhiblabcore.github.io/docs/hooks/