Examples
Usage examples for @constela/runtime
Basic Usage
typescript
import { createApp, mount } from '@constela/runtime';
import type { Program } from '@constela/core';
const program: Program = {
version: '1.0',
state: { count: { type: 'number', initial: 0 } },
actions: [
{
name: 'increment',
steps: [{ do: 'update', target: 'count', operation: 'increment' }]
}
],
view: {
kind: 'element',
tag: 'button',
props: { onClick: { event: 'click', action: 'increment' } },
children: [{ kind: 'text', value: { expr: 'state', name: 'count' } }]
}
};
const app = createApp(program);
mount(app, document.getElementById('app')!);Hydration (SSR)
typescript
import { createApp, hydrate } from '@constela/runtime';
// Server-rendered HTML is already in the DOM
const container = document.getElementById('app')!;
// Hydrate to make it interactive
const app = createApp(program);
hydrate(app, container);Cleanup
typescript
const app = createApp(program);
mount(app, document.getElementById('app')!);
// Later, when unmounting
app.destroy();