Инструменты управления базами данных и состояниями, такие как Redux, имеют различные проблемы (хотя они манипулируют одним и тем же: данными).
Когда клиент использует ваше приложение, он сначала получает данные из базы данных. В этот момент эти данные должны храниться в памяти для их отображения.
Вы можете решить использовать внутреннее состояние компонента Реакция, которое находится в области компонента. Теперь это прекрасно, если вы планируете использовать данные, которые вы только что получили, в одном и том же компоненте.
Поскольку ваше приложение становится все более сложным, вам иногда потребуется использовать данные в разных точках по всему приложению (например, если вы извлекаете информацию о пользователе, вам, вероятно, придется отображать ее в заголовке на странице профиля). и т. д.).
Это может быть сложно сделать, используя внутреннее состояние компонента React, поскольку (если вы немного попробовали React) вы знаете, что передача данных осуществляется путем передачи подпорок дочерним компонентам.
Распространенным решением, когда вам нужно обмениваться данными между различными компонентами, является , чтобы поднять состояние в вашем приложении, чтобы вы могли передать его разным компонентам, которым это необходимо.
Это может быть утомительно и может привести к ошибкам по мере роста вашего приложения.
Redux - решение, которое решает эту проблему. Это помогает сохранять четкое и чистое состояние, которое вы разделяете в своем приложении, создавая глобальное состояние, которое может быть доступно в любом месте вашего приложения (среди прочего).
Существуют, многие утверждают функции, если Вы пишете тесты. Но для assertiona в основном коде, нет никого, и можно прокрутить собственное легко.
Добавьте что-то вроде этого к environment.rb
:
class AssertFailure < Exception
end
def assert(message = 'assertion failed')
unless block_given? and yield
raise message
end
end
и сделайте его не в Вашем environments/production.rb
таким образом, существует минимально служебный
def assert(message = 'assertion failed')
end
Затем в Вашем коде можно утверждать к содержанию основы:
assert { value == expected_value }
assert('value was not what was expected') { value == expected_value }
Если value
не равняется expected_value
и Вы не работаете в производстве, исключение будет повышено.