Comments 14
Делал решение, которое преследует похожие цели, но на мой взгляд, делает это более легковесно https://www.npmjs.com/package/simple-duck
Осталось сделать последний шаг — выкинуть редукс:
class User extends Model {
@field id : string
@field name : string
@field email : string
@field friends : User[]
@action addFriend( friend : User ) {
const json = Fetch.json( `/users/${ this.id }` , { body : friend.id } ) as string[]
this.friends = json.map( id => User.byId[ id ] )
}
static byId : Record< string , User > = Registry({ get : ( id : string ) => {
const json = Fetch.json( `/users/${ id }` ) as {
name : string
email : string
friends : string[]
}
return User.make({
id ,
name : json.name ,
email : json.email ,
friends : json.friends.map( id => User.byId[ id ] ) ,
})
} })
}
Вот это поворот
const Model = $mol_object
const Registry = $mol_atom2_dict
const Fetch = $mol_fetch
const field = $mol_atom2_field
const action = $mol_fiber_method
И ещё выкинуть Model, добавив декораторы observable ;) Получим MobX, да?
Model
даёт удобный статический метод make
.
Так же она даёт сильную связанность. Причём захватывает единственную связь такого рода (мы же о языках без множественного наследования), вынуждая более естественные для предметной области наследования выражать композицией или ещё чем.
Так же она даёт сильную связанность.
Ну и что?
Причём захватывает единственную связь такого рода
Не захватывает. Наследуйтесь от чего хотите.
Ну и что?
Изменения в Model (инфраструктуре) отразятся на всю или почти всю бизнес-логику.
Не захватывает. Наследуйтесь от чего хотите.
Зачем тогда от него наследоваться вообще? Ни от чего не хочу — будет работать?
Магия IDE не поможет— используйте typescript и все вам поможет
Уважаемый автор, вам не нужен ридакс. И не «использование ридакса обладает рядом недостатков», а «ридакс — это не серебряная пуля».
Sign up to leave a comment.
Сложности работы с Redux и их решение