У меня есть несколько вопросов по поводу правильного структурирования хранилища Redux с реляционными данными и потенциально большими наборами данных.
В Redux я прочитал, что состояние должно быть нормализовано следующим образом:
{
posts : {
byId : {
"post1" : {
id : "post1",
author : "user1",
body : "......",
comments : ["comment1", "comment2"]
}
},
...
},
comments : {
byId : {
"comment1" : {
id : "comment1",
author : "user2",
comment : ".....",
},
...
}
},
...
}
Структурирование состояния, такого как база данных, имеет смысл, поскольку оно позволяет представлять данные только один раз в состоянии и впоследствии получать их только по идентификатору.
Однако у меня есть некоторые вопросительные знаки, в которых я до сих пор не уверен, иЯ не смог найти эти ответы онлайн.
1.Сколько данных вы должны хранить в штате?
Я полагаю, вы не все храните.Даже если это тысячи записей, нет?
Сколько это слишком много, и когда вам нужно беспокоиться о том, чтобы иметь слишком много данных?
2.Как следует структурировать состояние Redux с точки зрения ограничения данных, загружаемых на клиенте?
Например, что если вы загрузите только первые 100 комментариев и сообщений и сохраните их в состоянии, но post23
имеет comment221
, которого в данный момент нет.
Как вы справляетесь с этим, когда компоненту post необходимо отобразить список комментариев, чтобы отобразить их пользователю из состояния?
3.Как вы структурируете данные и управляете кэшированием / обновлением с использованием компонентов React?
Компоненты React должны загружать, обновлять и кэшировать данные из состояния Redux.Это означает, что эти компоненты должны знать части состояния Redux.
Когда вы загружаете данные?Как вы должны справиться с этим, когда он кэшируется?И как вы обновляете части состояния таким образом, чтобы эти изменения отражались в других частях приложения, где данные, возможно, уже были загружены и кэшированы?
Заключение
Я спрашиваю об этом, потому что мне нужно создать приложение, которое будет масштабироваться, а моя текущая структура вообще неэффективна.
Я действительно хочу понять, как лучше всего использовать Redux для каких целей.для чего он был создан, и как объединить его с React так, чтобы он был эффективным и масштабируемым.