169 похожих чатов

==== Может кто дать комментарий по вот такой реализации? const tplDefault =

{ id: null };
const indexDefault = {
country_code: {},
state: {},
city: {}
}


const initialState = {
index: cloneDeep( indexDefault ),

items: {},

tpl : cloneDeep( tplDefault ),
item: cloneDeep( tplDefault ),
};
export const state = () => cloneDeep( initialState );


const mutationAddItem = ({ insertItems, insertIndex }, { item, payload }) => {
insertItems[ item.id ] = item;

let countryCode = item.attributes.country_code;
let state = item.attributes.state;
let city = item.attributes.city;

if (! insertIndex.country_code[ countryCode ]) insertIndex.country_code[ countryCode ] = {};
if (! insertIndex.state[ state ]) insertIndex.state[ state ] = {};
if (! insertIndex.city[ city ]) insertIndex.city[ city ] = {};

insertIndex.country_code[ countryCode ][ item.id ] = true;
insertIndex.state[ state ][ item.id ] = true;
insertIndex.city[ city ][ item.id ] = true;
};


export const mutations = {
SET_ITEMS(state, { items, ...payload }) {
let insertItems = {};
let insertIndex = { ...indexDefault };
Object.values( items ).forEach( item => {
mutationAddItem( { insertItems, insertIndex }, { item, payload } );
} );

state.items = {
...state.initial.items,
...insertItems,
};

for ( let key in insertIndex ) {
if (Object.keys( insertIndex[ key ] ).length) {
Vue.set( state.index, key, {
...state.index[ key ],
...insertIndex[ key ],
} );
}
}
},
};

6 ответов

11 просмотров

очень жирная мутация

Фреско Жак- Автор вопроса
Vladimir Sadchikov
очень жирная мутация

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

а зачем там цикл еще с vue.set почему нельзя просто сказать что state.index = newIndex?

Фреско Жак- Автор вопроса
Vladimir Sadchikov
а зачем там цикл еще с vue.set почему нельзя прост...

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

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта