将对象传递给Vuex突变是一种好习惯吗?

时间:2020-02-28 09:16:17

标签: vuex

例如在商店中,我有多个字段。

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 :(得分:0)

如果这些字段一起使用并且具有较高的cohesion,则可以一次更新它们。如果没有,那么您应该考虑为每个字段创建一个不同的突变,然后在您的操作中分别调用每个突变。如果将更新与定期使用的数据分组在一起,则可以提高突变功能的可重用性

没有不好或好的做法,因为这是一个设计决定,您在这些决定上总是有权衡

我建议您考虑对您的数据进行更新,如果它们似乎总是一起更新,那么您的实现就可以了。