Sinho
A lightweight signal-based library for building web components with a React-like API.
- đ Web standards with custom HTML elements
- âī¸ React-like API
- âī¸ Declarative templating with JSX (no additional parsing)
- đĨ Fine-grained reactivity with signals
- đ Type-safe components out of the box with TypeScript
- đĒļ Lightweight (~4KB minified and compressed)
import { Component, useSignal } from "sinho";
class Counter extends Component("x-counter") {
render() {
const [value, setValue] = useSignal(0);
return (
<>
<p>Counter: {value}</p>
<p>
<button onclick={() => setValue((n) => n + 1)}>Increment</button>{" "}
<button onclick={() => setValue((n) => n - 1)}>Decrement</button>
</p>
</>
);
}
}