0.15.0 • Published 12 months ago

alien-dom v0.15.0

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months 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.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