Nice work! This is close to what I do with most new Rails app when I want more Asynchronous functionality.
This is a very good way of loading components dynamically, and the approach is pretty sound. We use the same technique at yazz.com to dynamically load components with Vue.js:
<component v-bind:is="page.component"></component>
Quite a nice explanation of the pattern, I might try this setup.
No real need for the author to make another js lib out of it, but hey, doesn’t hurt.
Yeah this is a good way, I use that since around TypeScript and react really started working together, it's a bliss
Here's a not incomprehensive list of similar implementations of this idea: Phoenix Drab/LiveView/Texas, Razor Components, Plotly's Dash, Intercoolerjs/Unpoly (provides view layer only without websockets), Rails StimulusReflex, Ruby Fie, Python Sofi, Python Remi, Node.js Purview, Python Flexx, Python Reahl (AGPL licensed), Python Wdom.
I am sure I missed quite a few. Feel free to comment down below with any other library.