Retalk 是 Redux 的一个最佳实践,简单、流畅而智慧。javascript
state
和 actions
,简洁清晰。createStore
与 withStore
,再无其它繁杂概念。loading
处理:发送请求,接着使用自动的 loading 状态便可。yarn add retalk复制代码
npm install retalk复制代码
const model = {
state: {
value: 0,
},
actions: {
add() {
const { value } = this.state; // this.state -> 获取 state
this.setState({ value: value + 1 }); // this.setState -> 更新 state
},
async asyncAdd() {
await new Promise((resolve) => setTimeout(resolve, 1000));
this.add(); // this[actionName] -> 调用 action
},
},
};
export default model;复制代码
import { createStore } from 'retalk';
import demo from './demo/model';
const store = createStore({ demo });
export default store;复制代码
import React from 'react';
import { connect } from 'react-redux';
import { withStore } from 'retalk';
const Demo = ({ value,add,asyncAdd,loading }) => (
<> <h4>Value: {value}</h4> <button onClick={add}>+1</button> <button onClick={asyncAdd}>Async +1 {loading.asyncAdd ? '...' :''}</button> </> ); // loading[asyncAction] -> 异步 action 的 loading 状态 export default connect(...withStore('demo'))(Demo);复制代码
只须要 3 步,一个简单的 Retalk 示例就呈如今眼前了。codesandbox.io/s/5l9mqnzvx
java
查看 文档 了解更多详细信息。react
Retalk 中使用了
Proxy
,若是老版本浏览器不支持,请尝试 proxy-polyfill。git
查看 更新日志 获取最新动态。github
Retalk 实现了 100% 的代码测试覆盖,欢迎尝试。npm
若是有什么问题和建议,欢迎提 Issues。redux
若是喜欢,欢迎加个 ★。浏览器
总之,尝试一下,你将体验到独一无二的全新 Redux 开发体验~bash
GitHub 地址:github.com/nanxiaobei/…
异步
npm 地址:www.npmjs.com/package/ret…