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

  • 相关阅读:
    大三寒假生活19
    大三寒假生活18
    大三寒假生活17
    大三寒假生活16
    大三寒假生活15
    大三寒假生活14
    MySQL 字符集与比较规则
    Python ord & chr
    CentOS7 通过 devstack 安装 OpenStack
    Python *args & **kwargs
  • 原文地址:https://www.cnblogs.com/Answer1215/p/9192475.html
Copyright © 2011-2022 走看看