Currently, when we make some modifications to layoutData, a whole new one is returned from backend with all necessary changes. The problem with this is that we have to recreate the layoutData object, and all references change, so every component has to render again. There are some options to be investigated to avoid this behavior:
- Not returning the full layoutData from backend, and just the parts that have changed (added/deleted/updated layoutDataItems)
- Comparing and merging the new layoutData with the old one instead of replacing.
- Add deep comparison to components using layoutData items instead of a shallow compare.