主题
常用函数集合
前端项目提供了非常多的常用函数,在文件 src/support/helper.ts
中。这些函数可以帮助我们更高效地开发前端应用。
环境变量相关
env
获取环境变量的值。
typescript
env(key: string): any
参数:
key
: 环境变量名称
返回值:
- 对应环境变量的值
示例:
typescript
// 获取 API 基础 URL
const baseUrl = env('VITE_BASE_URL')
// 获取应用名称
const appName = env('VITE_APP_NAME')
isProd
判断当前环境是否是生产环境。
typescript
isProd(): boolean
返回值:
true
: 当前是生产环境false
: 当前不是生产环境
示例:
typescript
if (isProd()) {
// 生产环境下的逻辑
} else {
// 开发环境下的逻辑
}
认证相关
rememberAuthToken
保存认证令牌到缓存中。
typescript
rememberAuthToken(token: string): void
参数:
token
: 认证令牌字符串
示例:
typescript
// 登录成功后保存令牌
rememberAuthToken('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...')
removeAuthToken
从缓存中移除认证令牌。
typescript
removeAuthToken(): void
示例:
typescript
// 退出登录时移除令牌
removeAuthToken()
getAuthToken
获取当前的认证令牌。
typescript
getAuthToken(): string | null
返回值:
- 认证令牌字符串,如果不存在则返回
null
示例:
typescript
const token = getAuthToken()
if (token) {
// 用户已登录
} else {
// 用户未登录
}
getBearerToken
获取带有 Bearer 前缀的认证令牌,用于 HTTP 请求头。
typescript
getBearerToken(): string | null
返回值:
- 带有 Bearer 前缀的认证令牌字符串,如果不存在则返回
null
示例:
typescript
const headers = {
Authorization: getBearerToken()
}
// 发送请求
fetch('/api/user', { headers })
界面相关
isMiniScreen
判断当前是否是小屏幕设备(宽度小于 500px)。
typescript
isMiniScreen(): boolean
返回值:
true
: 当前是小屏幕false
: 当前不是小屏幕
示例:
typescript
if (isMiniScreen()) {
// 小屏幕适配逻辑
} else {
// 大屏幕适配逻辑
}
t
国际化翻译函数,基于 i18n。
typescript
t(translate: string): string
参数:
translate
: 翻译键名
返回值:
- 翻译后的文本
示例:
typescript
// 假设 i18n 配置中有 { "welcome": "欢迎使用" }
const message = t('welcome') // 结果: "欢迎使用"
setPageTitle
设置页面标题。
typescript
setPageTitle(title: string): void
参数:
title
: 页面标题
示例:
typescript
// 设置页面标题为 "用户中心"
setPageTitle('用户中心')
// 如果有站点标题配置,结果会是 "用户中心-站点名称"
类型判断
isUndefined
判断值是否是 undefined。
typescript
isUndefined(value: any): boolean
参数:
value
: 要判断的值
返回值:
true
: 值是 undefinedfalse
: 值不是 undefined
示例:
typescript
if (isUndefined(user.name)) {
// 处理 name 未定义的情况
}
isFunction
判断值是否是函数。
typescript
isFunction(value: any): boolean
参数:
value
: 要判断的值
返回值:
true
: 值是函数false
: 值不是函数
示例:
typescript
if (isFunction(callback)) {
callback()
}
isBoolean
判断值是否是布尔类型。
typescript
isBoolean(value: any): boolean
参数:
value
: 要判断的值
返回值:
true
: 值是布尔类型false
: 值不是布尔类型
示例:
typescript
if (isBoolean(config.enabled)) {
// 处理 enabled 是布尔值的情况
}
isNumber
判断值是否是数字类型。
typescript
isNumber(value: any): boolean
参数:
value
: 要判断的值
返回值:
true
: 值是数字类型false
: 值不是数字类型
示例:
typescript
if (isNumber(age)) {
// 处理 age 是数字的情况
}
字符串处理
ucfirst
将字符串的首字母转为大写。
typescript
ucfirst(str: string): string
参数:
str
: 要处理的字符串
返回值:
- 首字母大写后的字符串
示例:
typescript
const name = ucfirst('john') // 结果: "John"
lcfirst
将字符串的首字母转为小写。
typescript
lcfirst(str: string): string
参数:
str
: 要处理的字符串
返回值:
- 首字母小写后的字符串
示例:
typescript
const name = lcfirst('John') // 结果: "john"
randomString
生成指定长度的随机字符串。
typescript
randomString(e: number = 10): string
参数:
e
: 生成的字符串长度,默认为 10
返回值:
- 生成的随机字符串
示例:
typescript
// 生成默认长度(10)的随机字符串
const str1 = randomString()
// 生成长度为 5 的随机字符串
const str2 = randomString(5)
strToFunction
将字符串转换为函数。
typescript
strToFunction(str: string, params?: any): Function
参数:
str
: 要转换的字符串params
: 可选的参数
返回值:
- 转换后的函数
示例:
typescript
// 将字符串转换为函数
const fn = strToFunction('function() { return "Hello World"; }')
const result = fn() // 结果: "Hello World"
// 带参数的情况
const fn2 = strToFunction('function(name) { return "Hello " + name; }', { name: 'John' })
const result2 = fn2('John') // 结果: "Hello John"
文件处理
generateFilename
生成唯一的文件名。
typescript
generateFilename(filename: string): string
参数:
filename
: 原始文件名
返回值:
- 生成的唯一文件名
示例:
typescript
const uniqueName = generateFilename('image.jpg')
// 结果可能是: "1634567890abcDEF.jpg"
getFileExt
获取文件的扩展名。
typescript
getFileExt(filename: string): string
参数:
filename
: 文件名
返回值:
- 文件的扩展名(包含点号)
示例:
typescript
const ext = getFileExt('document.pdf') // 结果: ".pdf"
getFilename
从路径中获取文件名。
typescript
getFilename(filename: string): string
参数:
filename
: 文件路径
返回值:
- 文件名
示例:
typescript
const name = getFilename('/path/to/document.pdf') // 结果: "document.pdf"
数组处理
unique
数组去重。
typescript
unique(arr: Array<any>): Array<any>
参数:
arr
: 要去重的数组
返回值:
- 去重后的数组
示例:
typescript
const arr = [1, 2, 2, 3, 3, 4]
const uniqueArr = unique(arr) // 结果: [1, 2, 3, 4]
日期处理
date
将时间戳转化成指定格式的日期字符串。
typescript
date(format: string, timestamp: number): string
参数:
format
: 日期格式,如 'YYYY-MM-DD HH:mm:ss'timestamp
: 时间戳(秒)
返回值:
- 格式化后的日期字符串
示例:
typescript
const formattedDate = date('YYYY-MM-DD HH:mm:ss', 1634567890)
// 结果可能是: "2021-10-18 15:31:30"
其他工具函数
_window
获取全局配置。
typescript
_window(key: string): any
参数:
key
: 配置键名
返回值:
- 配置值,如果不存在则返回
null
示例:
typescript
const baseUrl = _window('BASE_URL')
getBaseUrl
获取项目的基础 URL。
typescript
getBaseUrl(): string
返回值:
- 项目的基础 URL
示例:
typescript
const baseUrl = getBaseUrl()
// 在非生产环境下返回 '/api'
// 在生产环境下返回配置的 BASE_URL 或环境变量中的 VITE_BASE_URL
warpHost
为路径添加主机名,确保路径是完整的 URL。
typescript
warpHost(path: string | null): string | null
参数:
path
: 路径
返回值:
- 添加主机名后的完整 URL
示例:
typescript
const fullUrl = warpHost('/images/logo.png')
// 如果前后端不在同一域名下,结果可能是: "https://api.example.com/images/logo.png"
// 如果前后端在同一域名下,结果是: "/images/logo.png"