hooks
hooks copied to clipboard
feature/imperative-set-timeout
🤔 这个变动的性质是?
- [ ] 新特性提交
- [ ] 日常 bug 修复
- [ ] 站点、文档改进
- [ ] 演示代码改进
- [ ] TypeScript 定义更新
- [ ] 包体积优化
- [ ] 性能优化
- [x] 功能增强
- [ ] 国际化改进
- [ ] 重构
- [ ] 代码风格优化
- [ ] 测试用例
- [ ] 分支合并
- [ ] 其他改动(是关于什么的改动?)
🔗 相关 Issue
https://github.com/alibaba/hooks/issues/2537
💡 需求背景和解决方案
提供主动调用setTimeout的能力
useTimeout(
fn: () => void,
delay?: number | undefined
options?: { defaultActive?: boolean }
): {
clear: () => void;
start: () => void;
isActive: boolean;
};
📝 更新日志
- 修改返回值为对象类型 【BREAKING CHANGE】
- 提供
start和isActive两个新的返回值,用户可主动调用start进行定时器执行。 【BREAKING CHANGE】 - 提供options作为useTimeout的第三个参数,内含defaultActive,默认为true(兼容默认逻辑)
| 语言 | 更新描述 |
|---|---|
| 🇺🇸 英文 | |
| 🇨🇳 中文 |
☑️ 请求合并前的自查清单
⚠️ 请自检并全部勾选全部选项。⚠️
- [x] 文档已补充或无须补充
- [x] 代码演示已提供或无须提供
- [x] TypeScript 定义已补充或无须补充
- [x] Changelog 已提供或无须提供
@liuyib
说明一下
- isActive仅代表定时器的激活情况,不代表fn的运行情况,例如 fn运行完成不会将isActive置为false.
- 目前目标pr 分支为master,内含breaking改动