Тот самый Распопов, который делает лайтнинги по 45 минут
async getUserList() {
const response = await fetch('/api/users/');
return response.json();
}
function UserInfoView({ user }) {
return ...;
}
Что это за данные?
Что внутри?
class User {
constructor(data) {
this.id = data.id;
this.name = data.name || 'Anonymous';
this.age = data.age || 0;
}
}
const user = new User({ id: '...', name: 'Liza' });
class User {
constructor(data) {
// ...
}
copy(patch) {
return new User({ ...this, ...patch });
}
}
Потому что immutable!
class User {
constructor(data) {
// ...
}
equals(user) {
return user.id === this.id && ...;
}
}
class User {
constructor(data) {
// ...
}
isAdult() {
return this.age >= 18;
}
}
class User {
constructor(data) {
this.id = data.id;
this.name = data.name || 'Anonymous';
this.age = data.age || 0;
}
}
class User extends Record {
id = null;
name = 'Anonymous';
age = 0;
}
class User extends Record {
id: ID = null;
name: string = 'Anonymous';
age: number = 0;
}
copy()
и equals()
из коробкиconst user = new User({ ... });
const user2 = user.copy({ name: '...' });
user.equals(user2);
npm install dataclass