Следует ли разделять модули в моделях по «широте страницы» или «широте данных»?
Например:
«Данные» в моем приложении --- Новости, новости + Пользователь + комментарий (3 независимых данных)
«Страница» в моем приложении --- Домашняя страница HomePage + Моя страница UserPage (оба они будут использовать модель и действие в «данных» выше в разной степени)
1. Создайте HomePageModel и UserPageModel.
Создайте действие и модель News + User в HomePageModel
Разработайте действие и модель User + Comment в UserPageModel
2. Установите NewsModel, UserModel и CommentModel.
Подключите модули NewsModel и UserModel на странице HomePage.Соедините модули UserModel и CommentModel на странице UserPage.
Каким образом мне следует разрабатывать модели на основе?
@nikogu
Я думаю, что этот пример не отвечает на мой вопрос, потому что этот пример включает только «одну страницу» + «отдельные данные».
Таким образом, это можно понимать как разделение моделей по «страницам» или как разделение моделей по «данным».
PS: Упомянутые здесь модели разделения «страницы» относятся к созданию модели для каждой страницы, а модели разделения «данных» относятся к созданию модели для каждой независимой единицы данных или бизнес-логики.
Понимание этого примера:
1. Модели раздела «Страница» --- Если есть новая страница, на ней отображается список комментариев и соответствующий список пользователей. Затем вы должны создать модель под названием usersAndMessages для использования на этой новой странице.
2. Модели разделения «данных» --- Если вам нужно отобразить список комментариев на этой странице, вам нужно создать другую модель, называемую комментариями.
Насколько я понимаю, «страница» соответствует «модели».
Но как решить эту проблему с некоторыми частями, которые необходимо повторно использовать между «страницами»?
В конце концов, мы должны отделить повторно используемые действия и редукторы от моделей?
Но разве это не возврат к традиционному способу написания redux?
Насколько я понимаю, «страница» соответствует «модели».
Модель и страница не обязательно должны соответствовать друг другу, их можно разработать отдельно, а все данные, необходимые на странице, можно получить через подключение.
@sorrycc
Другими словами, я могу полностью разделить «широту данных» и «широту страницы», создать разные модели, связать соответствующую модель «широты страницы» и требуемую модель «измерения данных» на странице, верно?
function mapStateToProps(state) {
return {
// 数据维度创建的model
users: state.users,
comments:state.comments,
// 页面维度创建的model
homePage:state.homePage,
};
}
@ zerozaki0752 Да.
@sorrycc Спасибо! ! !
Другой вопрос о некоторых проблемах в демонстрационном действии Discovery.
1. Методы, определенные в эффектах и редукторах модели, некоторые используются внутри модели, а некоторые должны вызываться представлением (четкого различия нет).
2. В демонстрации представление для вызова действия называется диспетчеризацией "namespace / functionName", как это
3. Второй параметр mapDispatchToProps не передается при подключении
Мой ожидаемый эффект - инкапсулировать то, что должно вызываться представлением в модели, а затем mapDispatchToProps импортируется в представление, и действие может запускаться непосредственно через props.namespace_functionName в представлении без необходимости отправлять каждый раз.
Интересно, разумно ли это? Насколько это возможно?
Это личная привычка, предпочитаю метод отправки (действия).
Параметр mapDispatchToProps не передается в connect для привязки действия, но можно ли использовать диспетчеризацию для передачи действия в любой модели?
Компонент connect
будет иметь свойства dispatch
.
Самый полезный комментарий
@sorrycc
Другими словами, я могу полностью разделить «широту данных» и «широту страницы», создать разные модели, связать соответствующую модель «широты страницы» и требуемую модель «измерения данных» на странице, верно?