zoukankan      html  css  js  c++  java
  • [React] Refactor a connected Redux component to use Unstated

    In this lesson, I refactor a simple Counter component connected to Redux to use Unstated instead. I explain some of the cognitive overhead of working with Redux and how Unstated can help simplify your application codebase.

    Additional Resources https://github.com/jamiebuilds/unstated

    A basic example for Unstated:

    /**
     * Unstated Example
     */
    import React from "react";
    import ReactDOM from "react-dom";
    import Counter from "./components/Counter";
    import { Provider, Subscribe, Container } from "unstated";
    
    class CounterContainer extends Container {
      state = {
        count: 0
      };
    
      increment() {
        this.setState({ count: this.state.count + 1 });
      }
    
      decrement() {
        this.setState({ count: this.state.count - 1 });
      }
    }
    
    const ConnectedCounter = () => (
      <Subscribe to={[CounterContainer]}>
        {counter => (
          <Counter
            value={counter.state.count}
            onIncrement={() => counter.increment()}
            onDecrement={() => counter.decrement()}
          />
        )}
      </Subscribe>
    );
    
    ReactDOM.render(
      <Provider>
        <ConnectedCounter />
      </Provider>,
      document.getElementById("root")
    );

    We use:

    <Subscribe to={[CounterContainer]>

    I means we want to keep the state for the component itself.


    We can do some interesting things with <Provider> as well like dependency injection:

    let counter = new CounterContainer();
    
    render(
      <Provider inject={[counter]}>
        <Counter />
      </Provider>
    );

  • 相关阅读:
    UIScrollView控件介绍
    xib的简单使用
    使用xib开发界面
    浅析IOS中的AutoLayout
    关于字典转模型的个人理解
    Linux开发基础环境配置
    深度学习相关环境的配置
    蓝牙协议分析(2)_协议架构
    蓝牙协议分析(1)_基本概念
    10项目实战-交易数据异常检测
  • 原文地址:https://www.cnblogs.com/Answer1215/p/9192475.html
Copyright © 2011-2022 走看看