diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 64af695..40c8314 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -44,3 +44,6 @@ jobs: - name: Lint run: pnpm lint + + - name: Test benchmark + run: pnpm bench apps/text-update/text-update.html -i preact -i preact-signals diff --git a/apps/text-update/preact-signals/index.jsx b/apps/text-update/preact-signals/index.jsx new file mode 100644 index 0000000..b81b334 --- /dev/null +++ b/apps/text-update/preact-signals/index.jsx @@ -0,0 +1,25 @@ +import { createElement, createRoot } from "preact"; +import { signal } from "@preact/signals"; + +const randomValue = signal(-1); + +function Component() { + return ( +
+

Test {randomValue}

+

==={randomValue}===

+
+ ); +} + +/** @type {(rootElement: HTMLElement, initialValue: number) => (randomValue: number) => void} */ +export function mount(rootElement, initialValue = -1) { + randomValue.value = initialValue; + + let root = createRoot(rootElement); + root.render(); + + return (newRandomValue) => { + randomValue.value = newRandomValue; + }; +}