mini-van
cami.js
mini-van | cami.js | |
---|---|---|
1 | 8 | |
89 | 363 | |
- | - | |
8.3 | 9.5 | |
about 2 months ago | 8 days ago | |
JavaScript | 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.
mini-van
-
VanJS (Vanilla JavaScript): smallest reactive UI framework
Interestingly the `tags` object seems to support any tag name: https://github.com/vanjs-org/mini-van/blob/57b686ced075754ee...
And it still allows to provide specific types for teh known ones: https://github.com/vanjs-org/mini-van/blob/57b686ced075754ee...
Cool stuff
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.
What are some alternatives?
van - 🍦 VanJS: World's smallest reactive UI framework. Incredibly Powerful, Insanely Small - Everyone can build a useful UI app in an hour.
select2 - Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.
nipplejs - :video_game: A virtual joystick for touch capable interfaces.
ElementsJS - A lightweight DOM Manipulation library for VanillaJS
tinyjs
formio - A Form and Data Management Platform for Progressive Web Applications.
nano - 🎯 SSR first, lightweight 1kB JSX library.
marimo - A reactive notebook for Python — run reproducible experiments, execute as a script, deploy as an app, and version with git.
v - A simple and lightweight library for Vanilla JavaScript, allowing you to create a reactive UI.
Immer - Create the next immutable state by mutating the current one
vike - 🔨 Like Next.js / Nuxt but as do-one-thing-do-it-well Vite plugin.
webcomponents-blog-examples