0.15.0 • Published 12 months ago
alien-dom v0.15.0
alien-dom
Component engine that feels like React but has…
- Transparent observables (implicit reactivity, components are observers)
- No need to explicitly wrap your components (see MobX)
- No need for weird
foo()
access patterns (see Solid.js) - Host elements (i.e.
div
) accept observable refs as props!
- Synchronous top-down JSX evaluation (requires a compile step)
- …so stack traces aren't useless!
- …and you get DOM elements immediately! (no virtual DOM, thanks to
morphdom
)
- Automatically memoized functions and inline objects
- Automatic disposal of effects and event listeners (write less manual cleanup in
useEffect
destructors) - Strongly typed event channels (see
defineChannel
) - Nested components just work ™️
- Built-in niceties
- Flexible
class
prop (supports arrays and objects) - Light-weight spring animations
- Light-weight observability engine
- jQuery-inspired DOM extensions (optional)
- A standard library of component hooks (tree-shakeable)
- Easy context forwarding
- Flexible
How exactly does it "feel like React?"
The look and feel of React is preserved, including:
- Plain function components (but no component classes)
- Good ol' JSX (i.e.
<div class="foo" key={index} />
) albeit with different evaluation semantics - Component hooks with similar names (i.e.
useEffect
,useMemo
,useRef
,useState
) albeit with different behavior (except for useEffect) - The rules of React hooks apply to Alien DOM hooks (i.e. hooks must be called at the top level of a component) but event listeners can be attached anywhere
Are there missing features?
As this library is in beta, there are drawbacks compared to React:
- No error boundaries (yet)
- No suspense (yet)
- No server-side rendering (yet)
- No plugin for Vite (yet)
- No concurrent mode (probably never)
I'm ready to learn more!
- See the Getting Started page for a quick introduction.
- See the Quirks page for things to keep in mind.
Credits
These libraries contribute a ton to Alien DOM's functionality:
0.14.5
1 year ago
0.15.0
12 months ago
0.14.0
1 year ago
0.14.1
1 year ago
0.14.2
1 year ago
0.14.3
1 year ago
0.14.4
1 year ago
0.13.0
1 year ago
0.12.0
1 year ago
0.11.0
1 year ago
0.10.6
1 year ago
0.10.5
1 year ago
0.10.1
1 year ago
0.10.2
1 year ago
0.10.4
1 year ago
0.10.0
1 year ago
0.9.1
1 year ago
0.9.0
1 year ago
0.8.4
1 year ago
0.8.3
1 year ago
0.8.2
1 year ago
0.8.1
1 year ago
0.8.0
1 year ago
0.8.0-beta.0
2 years ago
0.6.4
2 years ago
0.7.0
2 years ago
0.6.2
2 years ago
0.5.5
2 years ago
0.6.1
2 years ago
0.5.4
2 years ago
0.5.3
2 years ago
0.5.2
2 years ago
0.5.1
2 years ago
0.3.6
2 years ago
0.3.5
2 years ago
0.5.0
2 years ago
0.4.1
2 years ago
0.4.0
2 years ago
0.3.4
2 years ago
0.3.3
2 years ago
0.3.0
2 years ago
0.3.2
2 years ago
0.3.1
2 years ago
0.2.0
2 years ago
0.1.0
2 years ago
0.0.0
2 years ago