Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/demongodyy/rlux
use Rx.js implement flux
https://github.com/demongodyy/rlux
Last synced: 14 days ago
JSON representation
use Rx.js implement flux
- Host: GitHub
- URL: https://github.com/demongodyy/rlux
- Owner: demongodYY
- Created: 2019-03-10T13:40:00.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-04-18T05:36:58.000Z (over 5 years ago)
- Last Synced: 2024-10-16T22:07:41.867Z (23 days ago)
- Language: JavaScript
- Homepage:
- Size: 12.7 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# rx-flux
利用 Rx.js 实现的 flux 架构,用于将数据状态保存在 store 中,通过 action 改变 store 中保存的值,并在任意地方获取值。
## 依赖
- "rx": "^4.1.0",
- "rxjs": "^6.4.0"
## 测试
```
npm run test //运行测试用例
npm run test-w //观察模式运行测试用例
```
## 核心函数
```javascript
/**
* 用于创建一个 store
* @params defaultValue - store 的默认值
* @return store
**/
createStore(defaultValue)/**
* 用于向一个 store 发出一个 action
* @params store - 向哪个 store 发出 action
* @params changeFn(state) - 改变 store 的值的回调函数,参数 state 用于获取当前 store 中的值。
* @return store
**/
emitAction(store, changeFn)/**
* 用于向一个 store 发出一个异步的 action
* @params store - 向哪个 store 发出 action
* @params promise - 异步操作的 promise
* @params changeFn(state, res) - (可选,默认直接返回 promise 的 resolve 结果)changeFn(state, res) - 改变 store 的值的回调函数,参数 state 用于获取当前 store 中的值, res 为异步操作的 resolve 结果。
* @return store
**/
emitAsyncAction(store, promise, [changeFn])/**
* 用于获取一个 store 中当前的值
* @params store - 获取哪个 store 的值
* @return value - store 中当前的值
**/
getValue(store)/**
* 用于订阅一个 store 中当前的值
* @params store - 订阅哪个 store 的值
* @params getValueFn(value) - 获取订阅值的回调函数, 在每次 emit 新值时触发。value 为其中的值
* @return subscirbe - 返回 state 的订阅
**/
subscribeValue(store, getValueFn)
```