Skip to main content

API

LynKit API 是一个实用的工具函数集合,提供了各种常见的数据处理、算法实现和开发辅助函数。这些工具函数可以帮助开发者解决日常开发中的常见问题,提高开发效率。

特点

  • 轻量级 - 每个工具函数都经过优化,体积小
  • 高效性能 - 注重性能优化,可处理大量数据
  • TypeScript 支持 - 完整的类型定义
  • 无依赖 - 不依赖外部库
  • 全面测试 - 每个函数都有完整的单元测试

工具函数分类

基础工具

数据处理

字符串工具

数组工具

算法工具

浏览器工具

网络工具

安装

npm install @lynkit/api

使用示例

防抖函数

import { debounce } from '@lynkit/api';

// 创建一个防抖函数
const handleSearch = debounce((searchTerm) => {
console.log('搜索:', searchTerm);
// 发送 API 请求
}, 300);

// 在输入框中使用
inputElement.addEventListener('input', (e) => {
handleSearch(e.target.value);
});

LRU 缓存

import { LRUCache } from '@lynkit/api/algorithm';

// 创建一个容量为 10 的 LRU 缓存
const cache = new LRUCache(10);

// 存储数据
cache.put('key1', 'value1');
cache.put('key2', 'value2');

// 获取数据
const value = cache.get('key1'); // 'value1'

// 检查是否存在
const exists = cache.has('key3'); // false

// 删除数据
cache.delete('key2');

日期格式化

import { formatDate } from '@lynkit/api';

const date = new Date();
const formatted = formatDate(date, 'YYYY-MM-DD HH:mm:ss');
console.log(formatted); // 例如: '2023-07-15 10:30:45'

// 使用预设格式
formatDate(date, 'short'); // '7/15/23'
formatDate(date, 'long'); // 'July 15, 2023'

数组操作

import { chunk, unique, shuffle } from '@lynkit/api';

// 数组分块
const arr = [1, 2, 3, 4, 5, 6, 7, 8];
const chunked = chunk(arr, 3);
console.log(chunked); // [[1, 2, 3], [4, 5, 6], [7, 8]]

// 数组去重
const duplicate = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = unique(duplicate);
console.log(uniqueArr); // [1, 2, 3, 4, 5]

// 数组洗牌
const deck = [1, 2, 3, 4, 5];
const shuffled = shuffle(deck);
console.log(shuffled); // 随机顺序的数组

与其他库的集成

LynKit API 可以与任何 JavaScript 框架或库一起使用,例如 React、Vue、Angular 等。

在 React 中使用

import React, { useState } from 'react';
import { debounce } from '@lynkit/api';

function SearchBar() {
const [results, setResults] = useState([]);

// 创建防抖搜索函数
const handleSearch = debounce(async (term) => {
const response = await fetch(`/api/search?q=${term}`);
const data = await response.json();
setResults(data);
}, 300);

return (
<div>
<input
type="text"
onChange={(e) => handleSearch(e.target.value)}
placeholder="搜索..."
/>
<ul>
{results.map(item => (
<li key={item.id}>{item.name}</li>
))}
</ul>
</div>
);
}

按需导入

可以只导入需要的函数,以减小打包体积:

// 只导入需要的函数
import { debounce, throttle } from '@lynkit/api';
import { LRUCache } from '@lynkit/api/algorithm';

浏览器兼容性

LynKit API 支持所有现代浏览器,对于旧版浏览器可能需要使用 polyfill。