Retalk,Redux 从未如此简单

简介

Retalk 是 Redux 的一个最佳实践,简单、流畅而智慧。

特性

  • 极简 Redux 实践:只需要 stateactions,简洁清晰。
  • 只有两个 APIcreateStorewithStore,再无其它繁杂概念。
  • 异步引入 model:对 models 进行代码分隔的完整支持。
  • 自动 loading 处理:发送请求,接着使用自动的 loading 状态即可。

安装

Yarn

yarn add retalk

npm

npm install retalk

示例

1. Model

// 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;

2. Store

// store.js

import { createStore } from 'retalk';
import demo from './demo/model';

const store = createStore({
  demo,
});

export default store;

3. View

// 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/5l9mqnzvx

文档

查看 文档 了解更多详细信息。

更新

查看 更新日志 获取最新动态。

最后

Retalk 实现了 100% 的代码测试覆盖,欢迎尝试。

如果有什么问题和建议,欢迎提 Issues。

如果喜欢,欢迎加个 ★。

总之,尝试一下,你将体验到独一无二的全新 Redux 开发体验~

GitHub 地址:https://github.com/nanxiaobei…

npm 地址:https://www.npmjs.com/package…

    原文作者:南小北
    原文地址: https://segmentfault.com/a/1190000015456111
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞