工具函数概述
📖 简介
@tsoul/utils
是 Web Boot 项目的核心工具函数库,提供了一系列常用的实用工具,包括 HTTP 请求封装、进度条管理、滚动处理、打字机效果等功能。
📦 安装
包信息
- 包名:
@tsoul/utils
- 类型:运行依赖
- 最新版本:1.0.6
安装命令
bash
pnpm add @tsoul/utils
bash
npm install @tsoul/utils
bash
yarn add @tsoul/utils
🛠️ 工具函数清单
🌐 HTTP 请求
- Axios 封装 - 强化的 HTTP 请求库
- 请求/响应拦截器
- 自动错误处理
- 请求取消机制
- 文件下载支持
📊 用户体验
- 进度条 - 基于 nprogress 的加载指示器
- 路由切换进度
- 请求加载状态
- 自定义样式主题
🖱️ 交互处理
- 滚动处理 - 兼容性滚动解决方案
- 平滑滚动动画
- 跨浏览器兼容
- 精确位置控制
✨ 视觉效果
- 打字机效果 - 文字逐字显示动画
- 可配置打字速度
- 支持暂停和重播
- 自定义光标样式
🔧 开发工具
- 函数重载 - TypeScript 函数重载工具
- 类型安全的重载
- 参数类型推断
- 智能提示支持
🚀 快速开始
基础导入
typescript
// 导入特定工具
import axios from '@tsoul/utils/axios'
import nprogress from '@tsoul/utils/nprogress'
import typewriter from '@tsoul/utils/typewriter'
// 或使用具名导入
import { scrollTo } from '@tsoul/utils/compatibleScrollTo'
import { createOverload } from '@tsoul/utils/funcOverload'
样式导入
某些工具需要导入对应的样式文件:
typescript
// 进度条样式
import '@tsoul/utils/nprogress.css'
// 打字机效果样式(如果需要)
import '@tsoul/utils/typewriter.css'
📚 使用示例
请求 + 进度条
typescript
import axios from '@tsoul/utils/axios'
import nprogress from '@tsoul/utils/nprogress'
import '@tsoul/utils/nprogress.css'
// 请求拦截器:显示进度条
axios.interceptors.request.use((config) => {
nprogress.start()
return config
})
// 响应拦截器:隐藏进度条
axios.interceptors.response.use((response) => {
nprogress.done()
return response
})
滚动 + 打字机
typescript
import { scrollTo } from '@tsoul/utils/compatibleScrollTo'
import typewriter from '@tsoul/utils/typewriter'
// 平滑滚动到顶部
scrollTo({ top: 0, behavior: 'smooth' })
// 打字机效果
typewriter('#title', {
strings: ['欢迎使用 Web Boot', '现代化前端开发工具'],
speed: 50,
loop: true,
})
🎯 最佳实践
1. 按需导入
typescript
// ✅ 推荐:按需导入
import nprogress from '@tsoul/utils/nprogress'
// ❌ 避免:全量导入
import * as utils from '@tsoul/utils'
2. 类型支持
typescript
// 充分利用 TypeScript 类型提示
import type { AxiosRequestConfig } from '@tsoul/utils/axios'
import type { TypewriterOptions } from '@tsoul/utils/typewriter'
const config: AxiosRequestConfig = {
timeout: 5000,
headers: { 'Content-Type': 'application/json' },
}
3. 样式管理
typescript
// 在应用入口统一导入样式
// main.ts
import '@tsoul/utils/nprogress.css'
🔗 相关资源
📋 版本历史
- 1.0.6 - 最新版本,功能完善
- 1.0.x - 稳定版本系列
- 持续更新中...