Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/g770728y/valor-hooks
公共hooks
https://github.com/g770728y/valor-hooks
hooks react typescript
Last synced: 3 days ago
JSON representation
公共hooks
- Host: GitHub
- URL: https://github.com/g770728y/valor-hooks
- Owner: g770728y
- Created: 2019-07-06T09:19:52.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-14T00:39:51.000Z (about 2 years ago)
- Last Synced: 2024-12-20T02:34:58.091Z (19 days ago)
- Topics: hooks, react, typescript
- Language: TypeScript
- Homepage:
- Size: 1.09 MB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# valor-hooks
> 工作中自己写的 hooks
## Install
```bash
npm install --save valor-hooks
```## Usage
### useCompositionInput
#### 用例 1: 实时搜索
想解决的问题: 在搜索框中, 中文"张", 先输入"zh", 会匹配`zh`的搜索, 直到输入完成才匹配到`张`的输入
也就是: 敲中文到一半时, 会搜索不需要的结果
参见: example/src/SearchInputDemo.js#### 用例 2: 状态提升时, 希望中文输入完成, 再更新 store
(比如 store.text 被两处引用, 改一处时另一处会同步变化, 这时显然不愿意看到输入一半的情况)
### useEventBus
想解决的问题:\
TODO: 这一段写得非常含糊!!!1. 属性多级下传: 需要在`Editor`组件中, 接收`onFocus`属性, 然而将此属性下传到 `input` 组件
2. 事件响应零散在各个组件中: 在`App`组件, 接收到某事件, 在`Editor`等组件中进行响应
虽然也可以通过`context`实现, 但感觉`context`还是以数据为中心.
想想一个`context`的结构是: {onFocus, onClick...}, 会非常奇怪.目前`useEventBus`是维护的全局`subscribes`, 所以你可以随便在不同的组件中使用\
如果希望不同的范围使用不同的`eventBus`, 简单地使用`useEventBus('namespace')`模式即可## License
MIT © [g770728y](https://github.com/g770728y)