JSPM

  • Created
  • Published
  • 0
  • Score
    100M100P100Q50154F
  • License BSD-2-Clause

Package Exports

  • @tty-pt/sub
  • @tty-pt/sub/dist/main.amd.js
  • @tty-pt/sub/dist/main.d.ts
  • @tty-pt/sub/dist/main.js
  • @tty-pt/sub/dist/main.js.map
  • @tty-pt/sub/package.json
  • @tty-pt/sub/src/main.d.ts
  • @tty-pt/sub/src/main.tsx

Readme

@tty-pt/sub - Quantum subscription system

This helps you have state outside of your components, like Redux, but simpler.

Take this example:

import { useState, useEffect, useMemo } from "react";
import { Sub, reflect, emit } from "@tty-pt/sub";

class TodoSub extends Sub {
    constructor() {
        super("TodoSub", { url: "initial" }, { useState, useEffect, useMemo });
    }

    @emit("$url/todos")
    add(name, text) {
        return {
            ...this.get(),
            [name]: text,
        };
    }
}

export
const todoSub = new TodoSub();

export default
function Todos(props) {
    const todos = todoSub.use("$url/todos");

    return <div>{
        Object.entries(todos).map(([key, value]) => (
            <div key={key}>{value}</div>
        ));
    }</div>
}