Thanks for your statement! And sorry for the horrible title - it was the only one that comes to my mind due to my restricted english vocabulary.
Right now my implementation works fine, but I’m worried that it might not be the case in future versions of vue.js - therefore my wish for a clear statement.
To justify my approach: I have to build really complex and in particular dynamic CRUD forms. There is always a base entity which is (or can be) connected to several other entities in arbitrary relations (one-to-many, many-to-many, …), therefore the json transfered from (and later on back to) the server is deeply nested too.
I know that flattening the data is a common approach, but
not all entities are real entities in the sense, that they have their own IDs (in the database), e.g. see [stackoverflow]
form editing is finished by pressing a save button (no live editing where changes are sent to the server as soon as they take place) and when the save button is pressed, there should be only one POST request which sends the json back to the server. And on the server (written in Java backed by Spring and Hibernate) the json is mapped back to the base entity (perhaps changing the base entity and/or connected entities, creating new relations to other existing or newly created entities and so on) and the complete stuff is stored within one (database) transaction to always ensure the consistency of the stored data.
In ancient times I’ve done this on the client with JSPs using crazy jQuery magic to make the forms dynamic (creating new input elements, deleting existing ones, …). It was a horrible mess fiddling with the DOM, calculating the correct indices and names of the form elements.
With vue the implementation (as initially described) is super simple and clean. The form can be broken down in components which can be reused everywhere. Making the form dynamic is simply done by changing the data, the form elements do not even need to have names!
I do not see a way to achieve such a simple and clean implementation without the possibility of mutating object props.
Moreover I talked so some react guys and they told me, that a comparably simple implementation is not possible in react (at least not out of the box).
For that reason I really would like to consider it as a strength of vue doing it this way.