[]previous and next page

Complete API table

The table maps application APIs from solid-js, solid-js/store and solid-js/web to ShadowJS.

For agentsUpdated

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