Начиная с углового я использовал класс для каждого объекта в моей БД, такой класс инкапсулировал все поведение сущности.React redux oop classes
, например, пользователи класса могут выглядеть
export class User{
static notValid(u){
return !!((u.id && u.id > 0 && u.fullname && u.fullname.length > 2 && u.picture) === false);
}
static fromArray(arr){
let pack = [];
for(let i=0;i<arr.length;i++){
pack.push(new User(arr[i]));
}
return pack;
}
constructor(u){
this.id = u.id || 0;
this.fullname = u.fullname+'' || 'N/A';
this.picture = u.picture+'' || '/imgs/logo.png';
this.role = u.role || 'N/A';
this.username = u.username+'' || '';
this.email = u.email+'' || '';
this.dob = u.dob || 0;
this.gender = u.gender+'' || '';
///START SETTING FLAGS AND VALIDATING DATA;
this.isValid = !User.notValid(this);
this.saved = this.id > 0;
let n = this.fullname;
this.nickname = n.split(' ').shift()+' '+n.split(' ').pop();
}
save(){
///IF NO ID, POST TO SERVER
if(!this.saved)return $http.post('/user',this.toJson);
return $http.put('user/'+this.id,this.toJson());
//tojson is defined in prototype;
}
identity(){
return {id:this.id,fullname:this.fullname,picture:this.picture,nickname:this.nickname};
}
}
}
так, что мой контроллер doenot знать о том, как сохранить или обновить пользователя, все это есть, чтобы вызвать сохранить() на объекте пользователя.
Теперь мир реактивов, где каждая вещь внутри приложения является компонентом;
1. Как я могу воспроизвести такой подход внутри компонента реакции?
Я читаю, что есть компоненты и интеллектуальные компоненты. но что насчет Data Model component?
2. Если я переношу весь мой текущий класс на реакцию, должен ли я также реализовать метод визуализации? могу ли я иметь несколько функций рендеринга для возврата разных html на странице.
пример выше Пользователь может появиться внутри профиля, все детали и в виде карты в списке пользователей, поэтому я должен хранить html для прототипа внутри класса?
Вы можете использовать https://www.npmjs.com/package/redux-schema для этого (раскрытие: я написал его). – DDS