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

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

Weekly downloads
-
License
MIT
Repository
github
Last release
5 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

9 months ago

1.0.18

9 months ago

1.0.17

9 months ago

1.0.16

9 months ago

1.0.9

9 months ago

1.0.3-5.beta-10

5 months ago

1.0.3-9.beta-3

5 months ago

1.0.3-5.beta-2

5 months ago

1.0.29-beta-4

6 months ago

1.0.3-5.beta-1

5 months ago

1.0.29-beta-2

6 months ago

1.0.29-beta-3

6 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

8 months ago

1.0.3-5.beta-9

5 months ago

1.0.21

9 months ago

1.0.3-5.beta-8

5 months ago

1.0.2-4.beta.2

8 months ago

1.0.2-2.beta.22

8 months ago

1.0.20

9 months ago

1.0.3-5.beta-7

5 months ago

1.0.26

7 months ago

1.0.2-2.beta.20

8 months ago

1.0.25

7 months ago

1.0.2-4.beta.1

8 months ago

1.0.2-2.beta.21

8 months ago

1.0.23

8 months ago

1.0.28

6 months ago

1.0.2-2.beta.19

8 months ago

1.0.27

6 months ago

1.0.2-2.beta.17

8 months ago

1.0.2-2.beta.18

8 months ago

1.0.2-2.beta.1

9 months ago

1.0.2-2.beta.15

8 months ago

1.0.2-2.beta.2

9 months ago

1.0.2-2.beta.16

8 months ago

1.0.2-2.beta.4

9 months ago

1.0.2-2.beta.5

8 months ago

1.0.2-2.beta.6

8 months ago

1.0.2-2.beta.7

8 months ago

1.0.29-beta-1

6 months ago

1.0.2-2.beta.9

8 months ago

1.0.3-9.beta-2

5 months ago

1.0.3-9.beta-1

5 months ago

1.0.33

6 months ago

1.0.2-2.beta.13

8 months ago

1.0.32

6 months ago

1.0.2-2.beta.14

8 months ago

1.0.31

6 months ago

1.0.2-2.beta.11

8 months ago

1.0.30

6 months ago

1.0.2-2.beta.12

8 months ago

1.0.37

5 months ago

1.0.36

5 months ago

1.0.2-2.beta.10

8 months ago

1.0.35

5 months ago

1.0.34

6 months ago

1.0.1-5.beta.2

9 months ago

1.0.38

5 months ago

1.0.1-5.beta.1

9 months ago

1.0.3-8.beta.1

5 months ago

1.0.3-8.beta.2

5 months ago

1.0.2-3.1

8 months ago

1.0.3-8.beta.11

5 months ago

1.0.3-8.beta.10

5 months ago

1.0.3-8.beta.3

5 months ago

1.0.3-8.beta.4

5 months ago

1.0.3-8.beta.5

5 months ago

1.0.3-8.beta.6

5 months ago

1.0.3-8.beta.7

5 months ago

1.0.3-8.beta.8

5 months ago

1.0.3-8.beta.9

5 months ago

1.0.11

9 months ago

1.0.10

9 months ago

1.0.15

9 months ago

1.0.14

9 months ago

1.0.13

9 months ago

1.0.12

9 months ago

1.0.8

10 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.5

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago