cami.js
supercomponent
cami.js | supercomponent | |
---|---|---|
8 | 2 | |
366 | 10 | |
- | - | |
9.5 | 3.1 | |
11 days ago | 6 months ago | |
HTML | HTML | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cami.js
-
HTML Web Components
Preact requires a build step otherwise you don't get JSX and you have to build applications a la mithril.js mode:
> const app = h('h1', null, 'Hello World!');
With Web Components no build step is required and you're still able to build JSX'ish code. See the code below this section: https://github.com/kennyfrc/cami.js#key-concepts--api
- Cami.js - A No Build, Web Component Based UI Framework
-
Show HN: Cami.js – A No Build, Web Component Based Reactive Framework
Yes, the lib's great!
Unfortunately I haven't thought much yet about interoperability with other web components libraries like lit. I imagined folks would choose just one web component library over the other.
That said, you can initialize reactive properties(1), but property bindings won't work if there's a parent LitElement (as my reactive properties need to be called with either a .value method or an .update method for getting and setting respectively).
As of the moment, what's possible is interop with other cami elements using a store, and in a future version, i'm considering a richer event system for external javascript code to listen to.
---
(1) Initializing is possible with observerableAttr: https://github.com/kennyfrc/cami.js/blob/master/examples/008...
-
Leaders Are Tool Builders: Why I Wrote My Own JavaScript UI Framework
The author is getting a bit of heat, and I think rightfully so. Here is the "tool" he's all bragging about: https://github.com/kennyfrc/cami.js/blob/master/src/cami.js
The whole thing is 250 Loc half of which is comments. And not to discount on that (Redux itself is not that big, though the ecosystem is). But this tool/project could be just a few blog posts where the author explains the patterns/libraries he is using.
It also doesn't help that his blog post/tool has the highest concentration of buzzword language you can expect. Please don't do that.
supercomponent
-
HTML Web Components
For me, that's the beauty of Web Components. You can find (or build) a base class that works the way you need it. I like a React class component style class with an XState-inspired state machine built in.
https://github.com/codewithkyle/supercomponent/blob/master/s...
- PSA: React 18 calls code twice in strict mode to detect unintended side effectd
What are some alternatives?
select2 - Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.
marimo - A reactive notebook for Python — run reproducible experiments, execute as a script, deploy as an app, and version with git.
ElementsJS - A lightweight DOM Manipulation library for VanillaJS
lit - Lit is a simple library for building fast, lightweight web components.
formio - A Form and Data Management Platform for Progressive Web Applications.
chat-app - A contact us demo widget built using Saasufy.
mini-van - Mini-Van: A minimalist template engine for DOM generation and manipulation, working for both client-side and server-side rendering (SSR)
webcomponents-blog-examples
Immer - Create the next immutable state by mutating the current one
SanKEY.js - A JavaScript library for visualizing huge Sankey diagrams.