The Code11 Engine is an alternative state management library.
It also offers a compact web development solution useful for rapid prototyping.
See docs.
Get started using the cli:
npx @c11/engine.cli create my-app
cd my-app
npm start
// App.tsx
export const App: view = ({
name = observe.name,
greeting = observe.greeting,
updateName = update.name,
}) => (
<div>
<h1>{greeting}</h1>
<input
defaultValue={name}
onChange={(e) => updateName.set(e.currentTarget.value)}
/>
</div>
);
const greeter: producer = ({
name = observe.name,
updateGreeting = update.greeting,
}) => {
const greeting = name ? "Enter your name:" : `Hello ${name}!`;
updateGreeting.set(greeting);
};
App.producers([greeter]);// index.tsx
import { engine } from "@c11/engine.runtime";
import { render } from "@c11/engine.react";
import { App } from "./App";
const app = engine({
state: {
name: "Foo Bar",
},
use: [render(<App />, "#app")],
});
app.start();This tiny example demonstrates the Engine concepts and most of it's API.
The rendering is done by views. Views observe and update anything on the state.
The business logic sits in producers. Producers can be added to views or to the global space of the application.