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

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

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

12 months ago

1.0.18

12 months ago

1.0.17

12 months ago

1.0.16

12 months ago

1.0.9

1 year ago

1.0.3-5.beta-10

8 months ago

1.0.3-9.beta-3

8 months ago

1.0.3-5.beta-2

8 months ago

1.0.29-beta-4

9 months ago

1.0.3-5.beta-1

8 months ago

1.0.29-beta-2

9 months ago

1.0.29-beta-3

9 months ago

1.0.3-5.beta-6

8 months ago

1.0.3-5.beta-5

8 months ago

1.0.3-5.beta-4

8 months ago

1.0.3-5.beta-3

8 months ago

1.0.22

11 months ago

1.0.3-5.beta-9

8 months ago

1.0.21

12 months ago

1.0.3-5.beta-8

8 months ago

1.0.2-4.beta.2

11 months ago

1.0.2-2.beta.22

11 months ago

1.0.20

12 months ago

1.0.3-5.beta-7

8 months ago

1.0.26

10 months ago

1.0.2-2.beta.20

11 months ago

1.0.25

10 months ago

1.0.2-4.beta.1

11 months ago

1.0.2-2.beta.21

11 months ago

1.0.23

11 months ago

1.0.28

9 months ago

1.0.2-2.beta.19

11 months ago

1.0.27

9 months ago

1.0.2-2.beta.17

11 months ago

1.0.2-2.beta.18

11 months ago

1.0.2-2.beta.1

11 months ago

1.0.2-2.beta.15

11 months ago

1.0.2-2.beta.2

11 months ago

1.0.2-2.beta.16

11 months ago

1.0.2-2.beta.4

11 months ago

1.0.2-2.beta.5

11 months ago

1.0.2-2.beta.6

11 months ago

1.0.2-2.beta.7

11 months ago

1.0.29-beta-1

9 months ago

1.0.2-2.beta.9

11 months ago

1.0.3-9.beta-2

8 months ago

1.0.3-9.beta-1

8 months ago

1.0.33

8 months ago

1.0.2-2.beta.13

11 months ago

1.0.32

8 months ago

1.0.2-2.beta.14

11 months ago

1.0.31

8 months ago

1.0.2-2.beta.11

11 months ago

1.0.30

9 months ago

1.0.2-2.beta.12

11 months ago

1.0.37

8 months ago

1.0.36

8 months ago

1.0.2-2.beta.10

11 months ago

1.0.35

8 months ago

1.0.34

8 months ago

1.0.1-5.beta.2

12 months ago

1.0.38

8 months ago

1.0.1-5.beta.1

12 months ago

1.0.3-8.beta.1

8 months ago

1.0.3-8.beta.2

8 months ago

1.0.2-3.1

11 months ago

1.0.3-8.beta.11

8 months ago

1.0.3-8.beta.10

8 months ago

1.0.3-8.beta.3

8 months ago

1.0.3-8.beta.4

8 months ago

1.0.3-8.beta.5

8 months ago

1.0.3-8.beta.6

8 months ago

1.0.3-8.beta.7

8 months ago

1.0.3-8.beta.8

8 months ago

1.0.3-8.beta.9

8 months ago

1.0.11

1 year ago

1.0.10

1 year ago

1.0.15

12 months ago

1.0.14

12 months ago

1.0.13

1 year ago

1.0.12

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago