0.9.1 • Published 1 month ago

alien-dom v0.9.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

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

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!

Credits

These libraries contribute a ton to Alien DOM's functionality:

  • we forked the awesome jsx-dom package
  • we forked the sublime morphdom package
0.9.1

1 month ago

0.9.0

1 month ago

0.8.4

1 month ago

0.8.3

1 month ago

0.8.2

2 months ago

0.8.1

2 months ago

0.8.0

3 months ago

0.8.0-beta.0

9 months ago

0.6.4

10 months ago

0.7.0

10 months ago

0.6.2

11 months ago

0.5.5

11 months ago

0.6.1

11 months ago

0.5.4

12 months ago

0.5.3

12 months ago

0.5.2

12 months ago

0.5.1

12 months ago

0.3.6

1 year ago

0.3.5

1 year ago

0.5.0

1 year ago

0.4.1

1 year ago

0.4.0

1 year ago

0.3.4

1 year ago

0.3.3

1 year ago

0.3.0

1 year ago

0.3.2

1 year ago

0.3.1

1 year ago

0.2.0

1 year ago

0.1.0

1 year ago

0.0.0

1 year ago