2016-11-28 6 views
-2

Я читал на Redux, и он решает множество проблем. Но по сути это просто центральное «истинное» хранилище.Почему бы не использовать файлы cookie вместо Redux?

Интуитивно, хотя я нахожу факт, что состояние все еще проходит через реквизит или контекст inelegant.

Помимо скорости ввода-вывода на диске, почему бы не использовать локальный магазин cookie в качестве центрального хранилища данных? Это устраняет необходимость передачи данных через компоненты.

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

Разработка на основе комментариев Дейва. Мой фактический вопрос - это больше о возможности иметь центральный магазин стиля Редукса, не требуя активного прохождения по штату через реквизит или контекст. Печенье казалось интересным первым проспектом для изучения.

Редактировать: Спасибо, что обратили внимание на незнакомых людей. Полезно знать, что просить о помощи по редко обсуждаемой теме наказывается любящими коллегами-программистами.

+1

Я предпочел бы иметь полный контроль/сдерживание состояния в приложении. Что делать, если браузер настроен на запрет куки? – Jecoms

+0

@Jecoms хороший пункт. Вчера у меня было такое же соображение, когда пользователь жаловался, что многие веб-страницы не работают хорошо без javascript. И здесь я строю почти исключительно JS ... – Mentor

ответ

2

Потому что вы будете бесконечно извлекать данные cookie и решать, нужно ли перерисовывать. Это не лучше, чем рассеивание данных в хранилищах DOM или произвольных веб-БД: конечная проблема такая же, что и она отключена от рендеринга.

Он полностью удаляет одно из преимуществ Реагента от вашего кода: вся суть состояния и свойств в Реактике заключается в том, что он обрабатывает повторную рендеринг (или ее отсутствие) для вас.

Образец Redux - это нечто большее, чем просто «центральное хранилище», которое может быть реализовано бесчисленными произвольными способами. Он также указывает, как доступ к хранилищу (потоки действий), который предоставляет ряд дополнительных преимуществ. Это ортогонально как данные хранятся.

Если вам нужны более значимые ответы, вам нужно будет защитить свое утверждение, что «передача данных через реквизит или контекст неэлегантна». Это односторонний поток данных; это не по своей сути неэлегантно.

+0

Большое спасибо за перспективу Дейва! Я не хочу сказать, что поток управления Redux меня беспокоит, совсем наоборот. Использование редукторов и диспетчерских действий является блестящим. Конечно, элегантность относительно, причина, по которой я чувствую, что путь Redux по-прежнему требует прохождения пропеллера или настройки контекста, а не путем «прямого» подключения к центральному магазину. Скорее всего, это всего лишь артефакт, используемый для неактивного мышления базы данных. Мой вопрос чисто, почему бы не использовать Redux, но иметь доступный по всему миру магазин, например, через файлы cookie. – Mentor

+2

@ Mentor It * is * доступен в глобальном масштабе, просто случается, что с компонентами React состояние отображается на реквизиты (если вы используете connect-redux 'connect). Проблема с «глобально доступным» заключается в том, что она доступна по всему миру, например, у вас нет средств для определения причины изменения состояния. Опять же: как он хранится, несущественно, вы можете написать back-end файла cookie (но не так, потому что файлы cookie имеют максимальные размеры, IIRC) или LocalDB или что-то еще, но тогда доступ не контролируется, и вы не получите автоматическое обновление и т.д.Мне все еще не ясно, какова ваша фактическая основная проблема/несогласие. –

+0

Это не столько разногласие или проблема. Более любопытство связано с тем, что всегда пытаюсь найти оптимальный способ для моего личного рабочего процесса, поэтому я очень благодарен вам за вклад. – Mentor

 Смежные вопросы

  • Нет связанных вопросов^_^