1.1.1 • Published 5 years ago

@react-mvi/core v1.1.1

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

@react-mvi/core

react-mvi is Model-View-Intent based minimal framework with Reactjs and RxJS.

  • We remove all shouldComponentUpdate from React by create each props as RxJS.Observable.
  • We built more redux user friendly Model-View-Intent framework than cyclejs.
  • Asynchronous process is no more problem, StateHandler make it easy and clean.
  • Command line tool has been prepared! as @react-mvi/cli

Inspired by
cyclejs
redux
react-combinators
react-reactive-toolkit

First look !

import * as React from 'react';
import { Observable } from 'rxjs/Rx';
import { Tags as T, store, intent, connect } from '@react-mvi/core';

/**
 * Intent is converter that convert dispatched event to Observable.
 */
@intent
class Intent {
  plus() { return this.intent.for('counter::plus').share();}

  minus() { return this.intent.for('counter::minus').share(); }
}

/**
 * Store is Observable state factory.
 */
@store
class Store {
  initialize() {
    return {
      view: {
        counter: this.intent.plus().mapTo(1)
          .merge(this.intent.minus().mapTo(-1))
          .scan((acc, e) => {
            return acc + e;
          }, 0)
      }
    };
  }
}

/**
 * Root component must decorated by connect like redux.
 */
@connect({
  mapIntentToProps(intent) {
    return {
      onPlus: intent.callback('counter::plus'),
      onMinus: intent.callback('counter::minus'),
    }
  }
})
class View extends React.Component {
  render() {
    return (
      <div>
        <button onClick={this.props.onPlus}>Plus</button>
        <button onClick={this.props.onMinus}>Minus</button>
        /* We can treat Observable value directly. */
        <T.Div>conter value is {this.props.counter}</T.Div>
      </div>
    );
  }
}

render(
  <Provider intent={Intent} store={Store}><View /></Provider>,
  document.querySelector('#app')
);

Guide

Architecture

architecture

Requirements

  • react >= 15.0.0 <= 15.6.1
  • react-dom >= 15.0.0 <= 15.6.1
  • rxjs >= 5.0.0 <= 5.4.2
1.1.1

5 years ago

1.1.0

5 years ago

1.0.114

6 years ago

1.0.113

6 years ago

1.0.112

6 years ago

1.0.111

6 years ago

1.0.110

6 years ago

1.0.109

6 years ago

1.0.108

6 years ago

1.0.107

6 years ago

1.0.106

6 years ago

1.0.105

6 years ago

1.0.104

6 years ago

1.0.103

6 years ago

1.0.102

6 years ago

1.0.101

6 years ago

1.0.100

6 years ago

1.0.99

6 years ago

1.0.98

6 years ago

1.0.97

6 years ago

1.0.96

6 years ago

1.0.95

6 years ago

1.0.94

6 years ago

1.0.93

6 years ago

1.0.92

6 years ago

1.0.91

6 years ago

1.0.90

6 years ago

1.0.89

6 years ago

1.0.88

6 years ago

1.0.87

6 years ago

1.0.86

6 years ago

1.0.85

6 years ago

1.0.84

6 years ago

1.0.83

6 years ago

1.0.82

6 years ago

1.0.81

6 years ago

1.0.80

6 years ago

1.0.79

6 years ago

1.0.78

6 years ago

1.0.77

6 years ago

1.0.76

6 years ago

1.0.75

6 years ago

1.0.74

6 years ago

1.0.73

6 years ago

1.0.72

6 years ago

1.0.71

6 years ago

1.0.70

6 years ago

1.0.69

6 years ago

1.0.68

6 years ago

1.0.67

6 years ago

1.0.66

6 years ago

1.0.65

6 years ago

1.0.64

6 years ago

1.0.63

6 years ago

1.0.62

6 years ago

1.0.61

6 years ago

1.0.60

6 years ago

1.0.59

6 years ago

1.0.58

6 years ago

1.0.57

6 years ago

1.0.56

6 years ago

1.0.55

6 years ago

1.0.54

6 years ago

1.0.53

6 years ago

1.0.52

6 years ago

1.0.51

6 years ago

1.0.50

6 years ago

1.0.49

6 years ago

1.0.48

6 years ago

1.0.47

6 years ago

1.0.46

6 years ago

1.0.45

6 years ago

1.0.44

6 years ago

1.0.43

6 years ago

1.0.42

6 years ago

1.0.41

6 years ago

1.0.40

6 years ago

1.0.39

6 years ago

1.0.38

6 years ago

1.0.37

6 years ago

1.0.36

6 years ago

1.0.35

6 years ago

1.0.33

6 years ago

1.0.32

6 years ago

1.0.31

6 years ago

1.0.30

6 years ago

1.0.29

6 years ago

1.0.28

6 years ago

1.0.27

6 years ago

1.0.26

6 years ago

1.0.25

6 years ago

1.0.24

6 years ago

1.0.23

6 years ago

1.0.22

6 years ago

1.0.20

6 years ago

1.0.19

6 years ago

1.0.18

6 years ago

1.0.17

7 years ago

1.0.16

7 years ago

1.0.15

7 years ago

1.0.14

7 years ago

1.0.13

7 years ago

1.0.12

7 years ago

1.0.11

7 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago

0.7.34

7 years ago

0.7.33

7 years ago

0.7.32

7 years ago

0.7.31

7 years ago

0.7.30

7 years ago

0.7.29

7 years ago

0.7.28

7 years ago

0.7.27

7 years ago

0.7.26

7 years ago

0.7.25

7 years ago

0.7.24

7 years ago

0.7.23

7 years ago

0.7.22

7 years ago

0.7.21

7 years ago

0.7.20

7 years ago

0.7.19

7 years ago

0.7.18

7 years ago

0.7.17

7 years ago

0.7.16

7 years ago

0.7.15

7 years ago

0.7.14

7 years ago

0.7.13

7 years ago

0.7.12

7 years ago

0.7.11

7 years ago

0.7.10

7 years ago

0.7.9

7 years ago

0.7.8

7 years ago

0.7.7

7 years ago

0.7.6

7 years ago

0.7.5

7 years ago

0.7.4

7 years ago

0.7.3

7 years ago

0.7.2

7 years ago

0.7.1

7 years ago

0.7.0

7 years ago

0.5.0

7 years ago

0.4.13

7 years ago

0.4.12

7 years ago

0.4.11

7 years ago

0.4.10

7 years ago

0.4.9

7 years ago

0.4.8

7 years ago

0.4.7

7 years ago

0.4.6

7 years ago

0.4.5

7 years ago

0.4.4

7 years ago

0.4.3

7 years ago

0.4.2

7 years ago

0.4.0

7 years ago

0.3.38

7 years ago

0.3.37

7 years ago

0.3.36

7 years ago

0.3.33

7 years ago

0.3.32

7 years ago

0.3.31

7 years ago

0.3.30

7 years ago

0.3.29

7 years ago

0.3.28

7 years ago

0.3.27

7 years ago

0.3.26

7 years ago

0.3.24

7 years ago

0.3.23

7 years ago

0.3.22

8 years ago

0.3.21

8 years ago

0.3.20

8 years ago

0.3.19

8 years ago

0.3.18

8 years ago

0.3.17

8 years ago

0.3.16

8 years ago

0.3.15

8 years ago

0.3.14

8 years ago

0.3.13

8 years ago

0.3.12

8 years ago

0.3.11

8 years ago

0.3.10

8 years ago

0.3.9

8 years ago

0.3.8

8 years ago

0.3.6

8 years ago

0.3.5

8 years ago

0.3.4

8 years ago

0.3.4-minor.0

8 years ago

0.3.4-patch.0

8 years ago

0.3.3-beta.46

8 years ago

0.3.3-beta.45

8 years ago

0.3.3-beta.44

8 years ago

0.3.3-beta.43

8 years ago

0.3.3-beta.42

8 years ago

0.3.3-beta.41

8 years ago

0.3.3-beta.40

8 years ago

0.3.3-beta.39

8 years ago

0.3.3-beta.38

8 years ago

0.3.3-beta.37

8 years ago

0.3.3-beta.36

8 years ago

0.3.3-beta.35

8 years ago

0.3.3-beta.34

8 years ago

0.3.3-beta.33

8 years ago

0.3.3-beta.32

8 years ago

0.3.3-beta.31

8 years ago

0.3.3-beta.30

8 years ago

0.3.3-beta.29

8 years ago

0.3.3-beta.28

8 years ago

0.3.3-beta.27

8 years ago

0.3.3-beta.26

8 years ago

0.3.3-beta.25

8 years ago

0.3.3-beta.24

8 years ago

0.3.3-beta.23

8 years ago

0.3.3-beta.22

8 years ago

0.3.3-beta.21

8 years ago

0.3.3-beta.20

8 years ago

0.3.3-beta.19

8 years ago

0.3.3-beta.18

8 years ago

0.3.3-beta.17

8 years ago

0.3.3-beta.16

8 years ago

0.3.3-beta.6

8 years ago

0.3.3-beta.4

8 years ago

0.3.3-beta.3

8 years ago

0.3.3-beta.2

8 years ago

0.3.3-beta.1

8 years ago

0.3.3-beta.0

8 years ago

0.3.1-beta.32

8 years ago

0.3.1-beta.31

8 years ago

0.3.1-beta.30

8 years ago

0.3.1-beta.26

8 years ago

0.3.1-beta.25

8 years ago

0.3.1-beta.24

8 years ago

0.3.1-beta.23

8 years ago

0.3.1-beta.22

8 years ago

0.3.1-beta.21

8 years ago

0.3.1-beta.20

8 years ago

0.3.1-beta.19

8 years ago

0.3.1-beta.18

8 years ago

0.3.1-beta.17

8 years ago

0.3.1-beta.14

8 years ago

0.3.1-beta.13

8 years ago

0.3.1-beta.12

8 years ago

0.3.1-beta.11

8 years ago

0.3.1-beta.10

8 years ago

0.3.1-beta.9

8 years ago

0.3.1-beta.8

8 years ago

0.3.1-beta.7

8 years ago

0.3.1-beta.6

8 years ago

0.3.1-beta.5

8 years ago

0.3.1-beta.4

8 years ago

0.3.1-beta.3

8 years ago

0.3.1-beta.2

8 years ago

0.3.1-beta.1

8 years ago

0.3.1-beta.0

8 years ago

0.2.35

8 years ago

0.2.34

8 years ago

0.2.33

8 years ago

0.2.31

8 years ago

0.2.30

8 years ago

0.2.29

8 years ago

0.2.28

8 years ago

0.2.26

8 years ago

0.2.21

8 years ago

0.2.20

8 years ago

0.2.19

8 years ago

0.2.18

8 years ago

0.2.17

8 years ago

0.2.16

8 years ago

0.2.15

8 years ago

0.2.14

8 years ago

0.2.13

8 years ago

0.2.12

8 years ago

0.2.11

8 years ago

0.2.10

8 years ago

0.2.9

8 years ago

0.2.8

8 years ago

0.2.7

8 years ago

0.2.6

8 years ago

0.2.5

8 years ago

0.2.4

8 years ago

0.2.3

8 years ago

0.2.3-beta.3

8 years ago

0.2.3-beta.2

8 years ago

0.2.3-beta.0

8 years ago