Я использую реаги-редукс для одного из моих приложений. Дизайн довольно сложный, а требуемая производительность очень высокая. это на самом деле Wyswyg строитель.
Мы использовали ответ с последних 2 месяцев, затем мы перешли к реактиву-редуксу для разделения кода и улучшения обслуживания, удобочитаемости кода и головной боли родительского и дочернего подхода ofc.
Итак, у меня есть массив, который имеет довольно сложную структуру
Вот так выглядит мое состояние:
const initialState = {
builder:{},
CurrentElementName:"",
CurrentSlideName:"",
.......
}
Поскольку в редуксе рекомендуется иметь как можно меньше данных в конкретном объекте, у меня есть еще один 8-9 редуктор, который отделен от основного состояния.
Моя проблема: Объект-строитель очень сложный, который имеет почти 3-4 уровня вниз, объекты и массивы, все это управляемая среда выполнения.
Итак, на componentdidmount
мое приложение вызовет сервер, получит данные и заполнит builder:{}
builder:{
slidedata:[{index:0,controName:'button',....},{index:0,controName:'slide',....}],
currentSlideName:'slide1',
currentElementName:'button1'
}
Этот объект-конструктор является довольно сложным и зависит от действий пользователя, таких как перетаскивание, изменение свойства, изменение событий, изменение позиции, которую этот объект-конструктор изменяет с помощью редуктора.
let clonedState= JSON.parse(JSON.stringify(state));
//doing other operations
Каждый раз, когда что-то меняется, этот объект должен выполнять определенные сложные операции, например, добавление нового слайда будет выполнять определенные операции и добавлять слайд в текущий массив, называемый slidedata.
Какая лучшая практика для ускорения этого? Я делаю что-то неправильно?
Я не уверен, что не так в этом коде, и, как рекомендую избыточность, я не могу использовать плоскую структуру для этого конкретного массива в качестве управляемого времени выполнения.
Я уверен, что у компонента есть данные, которые ему нужны.
Есть ли способ обработки больших данных? Эти итерации и изменение состояния убивают мою производительность.