Используя Aurelia Store, каков наилучший способ скопировать ваше состояние в Actions? - PullRequest
0 голосов
/ 25 сентября 2018

Какими способами можно глубоко клонировать мое состояние в действии?

Возможные решения, которые я видел: 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/

...