Retalk 是 Redux 的一個最佳實踐,簡單、流暢而智慧。react
state
和 actions
,簡潔清晰。createStore
與 withStore
,再無其它繁雜概念。loading
處理:發送請求,接着使用自動的 loading 狀態便可。yarn add retalk
npm install retalk
// demo/model.js 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;
// store.js import { createStore } from 'retalk'; import demo from './demo/model'; const store = createStore({ demo, }); export default store;
// demo/index.jsx import React from 'react'; import { connect } from 'react-redux'; import { withStore } from 'retalk'; // Automatically `loading[asyncAction]` is ready to use const Demo = ({ value,add,asyncAdd,loading }) => ( <div> <h4>Value: {value}</h4> <button onClick={add}>+1</button> <button onClick={asyncAdd}>Async +1 {loading.asyncAdd ? '...' :''}</button> </div> ); export default connect(...withStore('demo'))(Demo);
只須要 3 步,一個簡單的 Retalk 示例就呈如今眼前了。https://codesandbox.io/s/5l9mqnzvxgit
查看 文檔 瞭解更多詳細信息。github
查看 更新日誌 獲取最新動態。npm
Retalk 實現了 100% 的代碼測試覆蓋,歡迎嘗試。redux
若是有什麼問題和建議,歡迎提 Issues。bash
若是喜歡,歡迎加個 ★。異步
總之,嘗試一下,你將體驗到獨一無二的全新 Redux 開發體驗~async
GitHub 地址:https://github.com/nanxiaobei...測試
npm 地址:https://www.npmjs.com/package...this