Я создаю приложение-редактор и пытаюсь загрузить всю библию в редактор. Но он потребляет слишком много ресурсов и занимает несколько минут для рендеринга, не говоря уже о попытке редактировать текст и добавить некоторые функции пользовательского интерфейса, такие как перетаскивание изображений
Интересно, есть ли способ оптимизировать производительность редактора, по крайней мере, с гладким просмотром страницы.
Приложение построено с реагировать, реагировать на редукт, чертить - js и реагировать - dnd. Ссылка ниже - это «первый из Моисеев», загруженный в наше приложение.
https://www.feat.com/draft/124874/125399
ключевая структура постоянных данных
enum RewordingStatus {
PENDING;
REJECTED;
APPROVED;
}
class Rewording {
html_content: String;
status: RewordingStatus;
is_selected: Boolean;
}
class RewordableBlock {
id: Number;
status: BlockStatus;
sort: Number;
rewordings: Array<Rewording />
}
class Node {
title: RewordableBlock;
summary: RewordableBlock;
cover: RewordableBlock;
content: Array<RewordableBlock>;
}
Render Logi c
function NodeEdit() {
return (
<NodeContextProvider>
<ReworableBlock structure="cover" />
<ReworableBlock structure="title" />
<ReworableBlock structure="summary" />
{content.map((block) => (
<ReworableBlock structure="content" />
))
</NodeContextProvider>
);
}
function ReworableBlock() {
return (
<div>
<CurrentSelectedRewording />
<PendingRewordingList />
<HistoricRewordingList />
<DNDActionRegion />
</div>
)
}
каждый ReworableBlock
имеет хранилище состояний пользовательского интерфейса в избыточном