Полезно ли передавать объект мутации Vuex? - PullRequest
0 голосов
/ 28 февраля 2020

Например, в магазине у меня есть несколько полей.

loads: [{
            name: 'Example load',
            fields: {
                nu: { name: 'nu', variable: 'nu', field_id: 'tower_base_loads.extreme_load_abnormal_dlc', value: null, unit: e('UnitOfMeasure.COEFF') },
                pz: { name: 'Pz', variable: 'pz', field_id: 'tower_base_loads.extreme_load_abnormal_dlc', value: null, unit: e('UnitOfMeasure.KILONEWTONS') },
                px: { name: 'Px', variable: 'px', field_id: 'tower_base_loads.extreme_load_abnormal_dlc', value: null, unit: e('UnitOfMeasure.KILONEWTONS') },
                mz: { name: 'Mz', variable: 'mz', field_id: 'tower_base_loads.extreme_load_abnormal_dlc', value: null, unit: e('UnitOfMeasure.KILONEWTON_METERS') },
                my_neg: { name: 'My_neg', variable: 'my_neg', field_id: 'tower_base_loads.extreme_load_abnormal_dlc', value: null, unit: e('UnitOfMeasure.KILONEWTON_METERS') },
            }
        }]

поэтому я обновляю эти поля с помощью этой мутации:

mutations: {
    UPDATE_FIELD_VALUE: (state, {field, value}) => field.value = value,
},

это хорошая практика? Есть ли способ лучше?

1 Ответ

0 голосов
/ 28 февраля 2020

Если эти поля используются вместе и имеют высокую сплоченность , то все они обновляются сразу. Если это не так, вам следует рассмотреть возможность создания разных мутаций для каждого поля и просто вызывать каждую мутацию отдельно для ваших действий. Если вы группируете свои обновления с данными, которые регулярно используются вместе, вы увеличиваете возможность повторного использования функций мутации.

Нет плохой или хорошей практики, потому что это проектное решение , у вас всегда есть компромиссы по этим решениям.

Я бы рекомендуем подумать об обновлении ваших данных, если кажется, что они обновляются всегда все вместе, тогда ваша реализация в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...