0.15.0 • Published 1 year 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
useEffectdestructors) - Strongly typed event channels (see
defineChannel) - Nested components just work ™️
- Built-in niceties
- Flexible
classprop (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
1 year ago
0.14.0
2 years ago
0.14.1
2 years ago
0.14.2
2 years ago
0.14.3
2 years ago
0.14.4
1 year ago
0.13.0
2 years ago
0.12.0
2 years ago
0.11.0
2 years ago
0.10.6
2 years ago
0.10.5
2 years ago
0.10.1
2 years ago
0.10.2
2 years ago
0.10.4
2 years ago
0.10.0
2 years ago
0.9.1
2 years ago
0.9.0
2 years ago
0.8.4
2 years ago
0.8.3
2 years ago
0.8.2
2 years ago
0.8.1
2 years ago
0.8.0
2 years 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
3 years ago
0.6.1
2 years ago
0.5.4
3 years ago
0.5.3
3 years ago
0.5.2
3 years ago
0.5.1
3 years ago
0.3.6
3 years ago
0.3.5
3 years ago
0.5.0
3 years ago
0.4.1
3 years ago
0.4.0
3 years ago
0.3.4
3 years ago
0.3.3
3 years ago
0.3.0
3 years ago
0.3.2
3 years ago
0.3.1
3 years ago
0.2.0
3 years ago
0.1.0
3 years ago
0.0.0
3 years ago