Pragmatic, Reactive State Management for JavaScript Apps

Usage no npm install needed!

<script type="module">
  import activejsCore from 'https://cdn.skypack.dev/@activejs/core';


Pragmatic, Reactive State Management for JavaScript Apps

npm i @activejs/core

🚀 Get Started

📖 Documentation

🤾 Playground

📑 TodoMVC Example

⚡ Quick Example

This is how an implementation of a simple counter looks like, using a NumUnit, one of the reactive data structures that ActiveJS provides. The NumUnit stores and provides a number value at all times ensuring the type-safety.

// initialize a reactive data structure to store numbers
const counter = new NumUnit(); // with default initial-value 0

// two pure functions to produce an appropriate new value
const increment = value => value + 1;
const decrement = value => value - 1;

// subscribe for reactive value access, and log the value
counter.subscribe(value => console.log(value));
// immediately logs 0, and will log any future values

// increment
counter.dispatch(increment); // you'll see 1 in the console
// the pure function is called with the current value and
// the returned value is dispatched automatically

// decrement
counter.dispatch(decrement); // you'll see 0 in the console
// that's it our counter is complete

// you can also access the value directly
console.log(counter.value()); // logs 0

📊 Quick Comparisons

A simple "counter" implemented in Redux vs ActiveJS.

A simple "counter" implemented in NgRx vs ActiveJS.

🤝 Contributing

We welcome all contributions, whether you're reporting an issue, helping us fix bugs, improve the docs, or spread the word. We also welcome your suggestions and feedback.

⚖ Licence


💻 Author

Ankit Singh