function useQueuer<TValue>(fn, options): Queuer<TValue>
function useQueuer<TValue>(fn, options): Queuer<TValue>
定义于:react-pacer/src/queuer/useQueuer.ts:44
一个 React 钩子,用于创建和管理 Queuer 实例。
这是一个较低级别的钩子,可直接访问 Queuer 的功能,而无需 任何内置的状态管理。这使您可以将其与任何您喜欢的状态管理解决方案 (useState、Redux、Zustand 等)集成,方法是利用 onItemsChange 回调。
有关具有内置状态管理的钩子,请参阅 useQueuedState。
Queuer 扩展了基本 Queue 以添加处理功能。项目按顺序同步处理, 每个项目处理之间可以有可选的延迟。队列器包含一个可以启动和停止的内部滴答机制, 使其可用作调度程序。启动后,它将在每个滴答处理一个项目, 滴答之间可以有可选的等待时间。
默认情况下使用 FIFO(先进先出)行为,但可以通过在添加项目时指定“front”位置来配置为 LIFO(后进先出)。
• TValue
(item) => void
QueuerOptions<TValue> = {}
Queuer<TValue>
// 自定义状态管理和调度示例
const [items, setItems] = useState([]);
const queue = useQueuer({
started: true, // 立即开始处理
wait: 1000, // 每秒处理一个项目
onItemsChange: (queue) => setItems(queue.peekAllItems()),
getPriority: (item) => item.priority // 优先处理优先级较高的项目
});
// 添加要处理的项目 - 它们将被自动处理
queue.addItem('task1');
queue.addItem('task2');
// 控制调度程序
queue.stop(); // 暂停处理
queue.start(); // 恢复处理
// 自定义状态管理和调度示例
const [items, setItems] = useState([]);
const queue = useQueuer({
started: true, // 立即开始处理
wait: 1000, // 每秒处理一个项目
onItemsChange: (queue) => setItems(queue.peekAllItems()),
getPriority: (item) => item.priority // 优先处理优先级较高的项目
});
// 添加要处理的项目 - 它们将被自动处理
queue.addItem('task1');
queue.addItem('task2');
// 控制调度程序
queue.stop(); // 暂停处理
queue.start(); // 恢复处理