React Alien Signals is a TypeScript library that provides hooks built on top of Alien Signals. It offers a seamless integration with React, ensuring concurrency-safe re-renders without tearing.
Click to expandcreateSignal
createComputed
createEffect
and manage multiple effects with createSignalScope
useSignal
, useSignalValue
, and useSetSignal
for seamless state managementInstall react-alien-signals
and its peer dependency alien-signals
via npm:
npm install react-alien-signals alien-signals
Create a writable signal and use it within your components:
import { createSignal, useSignal } from "react-alien-signals"; const count = createSignal(0); function Counter() { const [value, setValue] = useSignal(count); return ( <button onClick={() => setValue(value + 1)}> Count: {value} </button> ); }
Create derived state that automatically updates:
import { createSignal, createComputed, useSignalValue } from "react-alien-signals"; const count = createSignal(1); const double = createComputed(() => count() * 2); function Display() { const doubleValue = useSignalValue(double); return <div>Double: {doubleValue}</div>; }
Run side effects in response to signal changes:
import { createSignal, createEffect, useSignalScope } from "react-alien-signals"; const count = createSignal(0); function Logger() { useSignalScope(() => { createEffect(() => { console.log('Count changed:', count()); }); }); return null; }
React Alien Signals provides several hooks to interact with signals:
useSignal(signal)
: Returns [value, setValue]
tuple for reading and writinguseSignalValue(signal)
: Returns the current value (read-only)useSetSignal(signal)
: Returns a setter function (write-only)useSignalEffect(effectFn)
: Runs a side effect based on signal changesuseSignalScope(callback)
: Manages effect scopes within a componentuseComputed(getter)
: Creates and subscribes to a computed signalContributions are welcome! Please read the Contributing Guidelines before getting started.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4