1.0.3-9.beta-3 • Published 4 months ago

kr-observable v1.0.3-9.beta-3

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

Observable

Adds reactivity power for your JavaScript 😎

npm coverage size-esm size-cjs

  1. Easy to use and provides a great developer experience;
  2. Supports classes and plain objects;
  3. Supports subclassing;
  4. Works in all runtimes (Node.js, Web, e.t.c);
  5. Well typed;
  6. Framework-agnostic.

For use as a state-manager, it comes with observer HOC (higher-order component) for React, as most popular library. But it can be used with any JavaScript framework or library.

Docs – observable.ru

Example with React

import { Observable, observer } from 'kr-observable'

class Counter extends Observable {
  count = 0;
  increase() { ++this.count; }
  decrease() { --this.count; }
}

const counter = new Counter()

function App() {
  return (
    <div>
      <button onClick={counter.decrease}>-</button>
      <div>{counter.count}</div>
      <button onClick={counter.increase}>+</button>
    </div>
)
}
export default observer(App)

More example and full docs on observable.ru

Performance

Is fast enough. observable performance

Memory usage

observable memory usage

Limitations

There is only one limitation: if you assign a new element to the array by index – changes will happen, of course, but You will not be notified.

import { Observable } from 'kr-observable';

class Example extends Observable {
  array = []
}

const state = new Example()
state.listen((p,v) => console.log(p,v))
state.array[0] = 1 // 
state.array.set(0,1) // array 1

There is a new set method in Array which you can use for that.

1.0.19

8 months ago

1.0.18

8 months ago

1.0.17

8 months ago

1.0.16

8 months ago

1.0.9

9 months ago

1.0.3-5.beta-10

4 months ago

1.0.3-9.beta-3

4 months ago

1.0.3-5.beta-2

5 months ago

1.0.29-beta-4

5 months ago

1.0.3-5.beta-1

5 months ago

1.0.29-beta-2

5 months ago

1.0.29-beta-3

5 months ago

1.0.3-5.beta-6

5 months ago

1.0.3-5.beta-5

5 months ago

1.0.3-5.beta-4

5 months ago

1.0.3-5.beta-3

5 months ago

1.0.22

7 months ago

1.0.3-5.beta-9

5 months ago

1.0.21

8 months ago

1.0.3-5.beta-8

5 months ago

1.0.2-4.beta.2

7 months ago

1.0.2-2.beta.22

7 months ago

1.0.20

8 months ago

1.0.3-5.beta-7

5 months ago

1.0.26

6 months ago

1.0.2-2.beta.20

7 months ago

1.0.25

6 months ago

1.0.2-4.beta.1

7 months ago

1.0.2-2.beta.21

7 months ago

1.0.23

7 months ago

1.0.28

5 months ago

1.0.2-2.beta.19

7 months ago

1.0.27

5 months ago

1.0.2-2.beta.17

7 months ago

1.0.2-2.beta.18

7 months ago

1.0.2-2.beta.1

8 months ago

1.0.2-2.beta.15

7 months ago

1.0.2-2.beta.2

8 months ago

1.0.2-2.beta.16

7 months ago

1.0.2-2.beta.4

8 months ago

1.0.2-2.beta.5

8 months ago

1.0.2-2.beta.6

7 months ago

1.0.2-2.beta.7

7 months ago

1.0.29-beta-1

5 months ago

1.0.2-2.beta.9

7 months ago

1.0.3-9.beta-2

4 months ago

1.0.3-9.beta-1

4 months ago

1.0.33

5 months ago

1.0.2-2.beta.13

7 months ago

1.0.32

5 months ago

1.0.2-2.beta.14

7 months ago

1.0.31

5 months ago

1.0.2-2.beta.11

7 months ago

1.0.30

5 months ago

1.0.2-2.beta.12

7 months ago

1.0.37

4 months ago

1.0.36

4 months ago

1.0.2-2.beta.10

7 months ago

1.0.35

4 months ago

1.0.34

5 months ago

1.0.1-5.beta.2

8 months ago

1.0.38

4 months ago

1.0.1-5.beta.1

8 months ago

1.0.3-8.beta.1

4 months ago

1.0.3-8.beta.2

4 months ago

1.0.2-3.1

7 months ago

1.0.3-8.beta.11

4 months ago

1.0.3-8.beta.10

4 months ago

1.0.3-8.beta.3

4 months ago

1.0.3-8.beta.4

4 months ago

1.0.3-8.beta.5

4 months ago

1.0.3-8.beta.6

4 months ago

1.0.3-8.beta.7

4 months ago

1.0.3-8.beta.8

4 months ago

1.0.3-8.beta.9

4 months ago

1.0.11

8 months ago

1.0.10

8 months ago

1.0.15

8 months ago

1.0.14

8 months ago

1.0.13

8 months ago

1.0.12

8 months ago

1.0.8

9 months ago

1.0.7

9 months ago

1.0.6

9 months ago

1.0.5

9 months ago

1.0.4

9 months ago

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago