Какими способами можно глубоко клонировать мое состояние в действии?
Возможные решения, которые я видел: Immer.js , JSON.parse(JSON.stringify)
или создание рекурсивной функциикоторый делает глубокий клон.Я даже думал о воссоздании того, что делает Redux, и создании Редукторов и объединении их для всего моего состояния, но есть причины, по которым я решил отказаться.Мне нравится в магазине Aurelia, как я могу отправить действия в хранилище внутри метода bind () каждого пользовательского элемента.Я считаю, что это лучший способ, потому что он обеспечивает высокую когезию и низкую связь .Принимая во внимание, что в Redux все мои действия и редукторы были централизованы с магазином.
Я никогда не использовал Immer.js, и мне было интересно, каковы его плюсы и минусы в использовании?
Iкак идея использования JSON.parse(JSON.stringify)
, потому что это гарантирует, что мое состояние всегда сериализуемо.Что будет хорошо, если я захочу сохранить свое состояние в каком-либо хранилище.Это позволяет мне выявлять проблемы на ранних этапах, например, когда я пытался использовать типы объектов Set и Map, и я быстро обнаружил, что они не серилизуются / десериализуются с помощью вышеуказанных методов.Но мне интересно, станет ли мой магазин слишком большим JSON.parse(JSON.stringify)
станет слишком медленным?
Тогда есть возможность просто создать рекурсивную функцию, которая копирует мое состояние.Кто-нибудь пробовал это?
Спасибо
РЕДАКТИРОВАТЬ - 26 сентября 2018 Я также задал этот вопрос на форуме дискурса aurelia и получил там несколько полезных ответов.https://discourse.aurelia.io/t/using-aurelia-store-what-is-the-best-way-to-copy-your-state-within-actions/