Jenesius / vue-form

💪 Heavy form system for Vue.js v3
http://form.jenesius.com
MIT License
45 stars 4 forks source link

[optimization] compare item #119

Open Jenesius opened 1 year ago

Jenesius commented 1 year ago

Особенность compareItem, в том, что оно затрагивает все изменения объекта. Если мы передадим следующий объект в функцию:

{ "username.name.login": "Jenesius" }

На выходе мы получим три объекта изменения: username, username.name и username.name.login. Важно! Это поведение является полностью верным и не требует изменений или оптимизации.

Предложение 1

В данной реализации мы идём по всем трём объектам и добавляем их. Но в этом нет смысла: нам не надо добавлять родительские, если мы в будущем будет добавлять дочерние.

В таком ключе, можно предложить следующее: добавлять только дочерние(листья) CompareItem[].

Предложение 2

Добавить в CompareResult новое поле: isEndPoint(Boolean), который будет отвечать за то, что данный CompareItem в дальнейшей цепочке compare не будет затрагиваться.

Jenesius commented 1 year ago

Хуистья, а как мы потом узнаем, что у нас address изменился если у нас будет только address.city.name в compare. У нас и так сейчас проблема с target