Где я могу разместить операции CRUD в приложении actjs?
В Интернете полно людей, говорящих мне, что я не так реагирую. Я уверен, что они правы, так как я только начал. Общеизвестным трюизмом является то, что реакция - это просто слой вида. Это замечательно, но это заставляет меня задуматься о том, куда мне положить другие мои вещи?
У меня есть довольно простой набор компонентов, которые вместе показывают список вложенных типов данных и позволяют некоторое редактирование, создание и удаление вещей. Компоненты, которые используют данные, передают их через подпорки по иерархии от родительского элемента, который извлекает данные. Если эти операции чтения идут куда-то еще, если это "просто слой представления"
Какова лучшая практика для этого, идиоматический способ, способ реагирования? Должна ли моя операция удаления быть включена в мой компонент кнопки удаления? рядом с операцией чтения? где-нибудь еще?
2 ответа
Я предлагаю вам попробовать некоторую архитектуру потока. В этом случае это будет выглядеть так, как описано ниже:
- Вы вызываете действие при нажатии кнопки удаления, например actions.deleteUser(1)
- Действие вызывает соответствующий API
- Храните подключенный к вашим изменениям компонента и изменениям состояния компонента
- компонент перерисовывается автоматически
Это зависит от потока, который вы предпочитаете. Поток может быть немного другим. Я предпочитаю рефлюкс один
В реакции данные передаются только от родительского компонента к дочернему компоненту. Я предполагаю, что ваше состояние хранится в родительском компоненте, так как вы создаете, обновляете и удаляете в отдельных компонентах. Состояние может быть изменено только путем вызова setState()
функционировать на нем. Поэтому дочерние компоненты не могут изменять состояние приложения. Это может быть сделано только с помощью функции обратного вызова.
Функция удаления будет записана в родительском компоненте и будет передана для удаления компонента в качестве реквизита. Затем компонент удаления вызовет функцию удаления (обратный вызов), которая вызовет setState() для состояния родительского компонента и тем самым изменит его состояние. Никогда не изменяйте состояние приложения без setState().
Надеюсь это поможет