Стоит ли хранить ее данные в store redux + все экшены, редьюсеры для нее или нет?
Так же есть Dialog окно, которое имеет состояние isOpened: true / false (открыт ли popup/диалоговое окно)
Какие данные стоит прогонять через redux, а какие нет?
Например очевидно что хранить state обычной формы в store и прогонять все через redux не нужно, можно воспользоваться ее стейтом напрямую.
Где та грань, когда "вот это - храним в store", а "вот это - используем локальное состояние" ?
Если данные используются только компонентом и только на время его жизненного цикла тогда стейт, в прочих случаях хранилище, как явствует из самого названия - туда кладём то что нуждается в хранении.
Дмитрий , Скажите пожалуйста, что нуждается в хранении ?
Кроме везде описанных примеров типа "данные пользователя", просто у некоторых приложений такой огромный store, там хранят и список полученных новостей, и полностью новость и еще кучу кучу всего..
alex4answ, данные, которые нужны для отрисовки всего приложения (например, содержимое поля "придумайте пароль" может влиять на шкалу сложности пароля - например, цвет меняется от красного к зеленому). Тогда данные грузим в стейт. А если у вас кнопка-счетчик лайков, то можно и локально хранить ее состояние
shsv382, спасибо, я примерно нащупываю эту грань, у меня получается тогда редакс вообще не нужен, либо нужен буквально в паре мест, я просто смотрю у тех же headhunter, у них в store вообще буквально все запихано )))
shsv382, ну просто некоторые данные не нужно хранить постоянно, например данные всех статей, нужны только на /articles
а данные для статьи нужно только на /articles/id
Мне же не нужно хранить это в store, проще в жизненном цикле компонента подгрузить и все )
В общем я новенький в SPA и в фронтенде с JS фреймом, потому для меня некоторые моменты ооочень странные и запутанные )
alex4answ, и store, и state компонента - это по сути одно и то же - объект, хранящий данные. Ты точно так же можешь подгрузить их в store внутри того же componentDidMount. Смысл использовать state (redux) в том, чтобы дать доступ к этим данным другим компонентам приложения. Например, ты захочешь перекрасить header в зависимости от жанра отображаемой статьи
Хранить следует только стерилизуемые данные , такие как строка число и другие примитивы + объекты , функции классы , не следует хранить в store , а импортить через путь .