Vue 2 was the closest thing that I’d really like to use: just my data with methods + declarative ui with bindings.<p>Call me old-fashioned, I still prever model-view relationships separated. Can’t see what’s wrong with having a non-visual model that works on its own and then putting views on top of it to make it accessible to a user. Not only that, I don’t get <i>why</i> I would write model logic in a way that would nail it to a views system.<p>Js objects have observable properties and (with some care) they can even be shared across different subsystems/libraries.<p>What I’d like to see is a UI library that takes my “instanceof Foo” with its value properties, getter properties and methods and observes it. Then I write vue-like html or hyperscript with an assumed root object:<p><pre><code> import {num_fmt} from “…”
import {my_counter} from “…”
const view = (
<button onclick={this.reset()}>
Reset count: {num_fmt(this.count)}
</button>
)
ui.mount(some_el, view, my_counter)
</code></pre>
The my_counter remains free to use elsewhere or to be included into a larger structure. The goal is that ui will notice “.count =” anywhere and schedule an update to dom.<p>Js is absolutely full of features which all these frameworks are trying to reimplement for some reason. There are rough edges that Vue addressed (array obs mostly) and I thought that wow that’s its purpose with some helpers around it. Nice, the next step is to deprecate Options in favor of just js. But it went completely downhill since with sfc and composition and all.
Vue is great. I loved the old Options API and was resistant to the new setup/composables way of doing things. But as soon as I tried the new way I loved it. I think it will scale much better as well.
<i>> Tengen Toppa Gurren Lagann</i><p>I take it back. Buster, bullseye, bookworm, gibbon, fawn, eft, fossa, jellyfish, and numbat are amazing release names. What is this!?