Complete API table
The table maps application APIs from solid-js, solid-js/store and solid-js/web to ShadowJS.
The table maps application APIs from solid-js, solid-js/store and solid-js/web to ShadowJS.
“Renamed” means the name changed; “replaced” means the programming model changed; an unavailable API
is called out explicitly so you can plan that part of the migration.
| Solid export | ShadowJS | Status |
|---|---|---|
createSignal |
useSignal |
RENAMED |
createEffect |
useEffect |
RENAMED |
createMemo |
useMemo |
RENAMED |
createResource |
useResource |
RENAMED |
createRoot |
createRoot |
SAME |
createContext |
createContext |
SAME |
useContext |
useContext |
SAME |
createSelector |
useSelector |
RENAMED |
createReaction |
useReaction(onInvalidate) |
RENAMED |
createDeferred |
useDeferredValue(source, options?) |
RENAMED |
createComputed |
none; useMemo + useRenderEffect |
RECIPE |
createRenderEffect |
useRenderEffect |
RENAMED |
batch |
batch |
SAME |
untrack |
untrack |
SAME |
on |
useEffect(deps, fn, { defer }) |
RECIPE |
observable |
useExternalStore (subscribe) |
RECIPE |
from |
useExternalStore |
RECIPE |
startTransition |
startTransition(fn) |
SAME |
useTransition |
useTransition() returns [isPending, start] |
SAME |
enableScheduling |
none (no scheduler switch) | REJECTED |
enableExternalSource |
useExternalStore |
RECIPE |
onMount |
onMount |
SAME |
onCleanup |
onCleanup |
SAME |
onError |
onError |
SAME |
catchError |
catchError |
SAME |
getOwner |
getOwner |
SAME |
runWithOwner |
runWithOwner |
SAME |
createUniqueId |
useId |
RENAMED |
mergeProps |
mergeProps |
SAME |
splitProps |
splitProps |
SAME |
children |
children(fn) with toArray, count, map, forEach, only |
NEW |
lazy |
lazy |
PARTIAL |
DEV |
none (devtools hook in development builds) | REJECTED |
isServer |
isServer (core and web) |
SAME |
isDev |
isDev |
SAME |
createAsync, action, refresh (2.0?) |
useResource (refetch, mutate), useAction |
RECIPE |
createOptimistic (2.0?) |
useOptimistic |
RENAMED |
createStore |
useStore (@shadow-js/core/store) |
RENAMED |
createMutable |
useStore draft form |
RECIPE |
modifyMutable |
setState(reconcile(next)) |
RECIPE |
produce |
produce (@shadow-js/core/store) |
SAME |
reconcile |
reconcile(next, { key, merge }) |
SAME |
unwrap |
unwrap |
SAME |
snapshot |
snapshot |
SAME |
createProjection |
useMemo over the store (recipe) |
RECIPE |
$RAW, $PROXY, $TRACK, $DEVCOMP, isWrappable |
none | REJECTED |
Show |
Show |
SAME |
For |
For |
SAME |
Index |
Index |
SAME |
Switch |
Switch |
SAME |
Match |
Match |
SAME |
ErrorBoundary |
ErrorBoundary (fallback(err, reset)) |
SAME |
Suspense |
Suspense |
SAME |
SuspenseList |
SuspenseList |
SAME |
Portal |
Portal |
SAME |
Dynamic |
Dynamic |
SAME |
createDynamic |
createDynamic |
SAME |
NoHydration |
NoHydration |
SAME |
ClientOnly |
ClientOnly |
NEW |
Assets, useAssets, getAssets |
useHead and createServerHead; renderToStringAsync(...).head |
RECIPE |
MetaProvider |
none (head registry is per document) | REJECTED |
Hydration |
none | REJECTED |
render |
render |
SAME |
hydrate |
hydrate |
SAME |
renderToString |
renderToString (/server) |
SAME |
renderToStringAsync |
renderToStringAsync |
PARTIAL |
renderToStream |
renderToStream (/server) |
PARTIAL |
generateHydrationScript |
generateHydrationScript({ nonce?, eventNames? }) (@shadow-js/web/server) |
NEW |
HydrationScript |
<HydrationScript nonce={...} /> (@shadow-js/web/server) |
NEW |
template |
template |
SAME |
insert |
insert |
SAME |
spread |
spread |
SAME |
mergeProps (web) |
mergeProps (@shadow-js/web re-export) |
SAME |
effect |
effect (render effect) |
SAME |
memo (web) |
memo (web) |
SAME |
createComponent |
createComponent |
SAME |
use (directive helper) |
use(fn, el, arg) |
SAME |
classList, style, setStyleProperty, setAttribute, setAttributeNS, setBoolAttribute |
same names | SAME |
addEventListener, delegateEvents |
same names | SAME |
clearDelegatedEvents |
none | DEFERRED |
getNextElement, getNextMarker, getNextMatch, resolveSSRNode |
none | REJECTED |
ssr, ssrElement, ssrAttribute, escape (server) |
same names (/server) |
SAME |
ssrClassList, ssrStyle, ssrSpread, ssrHydrationKey |
ssrClass, ssrStyle, ssrHydrationKey; spread on the server |
PARTIAL |
isServer (web) |
isServer |
SAME |
getRequestEvent (SolidStart) |
Dusk server context | DEFERRED |