Great question. Given its underlying nature of being tied to Node-RED and Node.js, I would suggest that it will never be totally free of breaking changes. Quickly checking the releases, I can see that the last 3 major versions (where breaking changes might be introduced) have come at about 1 year intervals. However, if I remember correctly, the last major release change (5->6) mostly only had potentially breaking changes and not many of those - they would only affect a few people.
Largely, the big breaking changes are over and the underlying architecture has settled down.
Below is the list of probable big changes for v7 when it finally appears (probably not until Node-RED v4 is released unless some other compatibility issue forces things).
There was indeed a time when my knowledge of the DOM and the capabilities of the DOM at the time meant that VueJS was integral to what I was trying to achieve. But that changed a long time back - I can't even remember when now. And with the introduction of the "new" client, the break with VueJS was completed. Even the older uibuilderfe
client library only had a couple of minor Vue integrations for convenience.
Other than the new client library and some minor tweaks to the standard URL locations of endpoints, there really have been very few breaking changes over the years.
However, each major release does indicate a change to a newer version of Node.js as the base requirement - generally happening in line with the same change in Node-RED itself. Those will certainly continue to happen. Especially as any required 3rd-party node.js libraries also change. I'm afraid that this is an inevitable consequence of using node.js and browser technologies.
That is certainly my hope - HOWEVER, you won't be forced to, you can continue to use Vue if that is better for you.
To reiterate - your learning of Vue is NOT WASTED - all versions of UIBUILDER continue to support ANY front-end framework, I have yet to find one that doesn't work.
What is happening is the the browser DOM continues to improve and evolve. But it tends to do so in an evolutionary fashion rather than what can often happen with frameworks which is that you get sudden jump changes that require recoding things. This is one of several major reasons that UIBUILDER now focuses on the best use of the DOM. To help avoid big step changes. And to ensure that any learning you put into how to do things with UIBUILDER is learning that is easily applied to directly working with the DOM should you ever wish to do so in the future. You will not be locked into another framework - UIBUILDER is not a framework. It's UI handling capabilities are merely convenience tools that even out the quirks of working with the DOM.
So no, your investment in Vue can continue and will be able to continue in the future should you want that. But, if you would prefer to start to move away from Vue towards vanilla native HTML/CSS/JavaScript, you can do so comfortably.
And my aim is to always have new versions - even major ones - as backwards compatible as possible.
Probably breaking change list for v7
- Minimum node.js v18
- Minimum node-red v4
- Removal of redundant uib-list node
- Remove Pollyfills from uibuilder editor code (no longer needed now that browsers caught up some years ago)
- Consider removing the css auto-load in the next major release since at least 1 person has hit a race condition. ref.
- Switch to default of case sensitive URL's for ExpressJS. Socket.IO is already case sensitive but ExpressJS is not. This can cause issues as shown in Ref - will be optional, see next point.
- Add URL case sensitivity flag.
- Restrict
onChange
to only watch watched variables? (checking to make sure it doesn't start with _
or #
)
- Maybe the removal of the old front-end client - not yet decided which is why that question is included.