свойствах класса такого плана
obj = {
key1: false,
key2: false,
key3: false
...
}
И вот при кликах на кнопки false меняется на true и обратно. Нормально ли просто делать мутацию obj.key2 = !obj.key2 ?
Или правильнее сделать копию объекта, ее изменить и потом переприсвоить, чтобы объект по ссылке полностью обновился?
newObj = {...obj}
newObj.key2 = !newObj.key2
obj = newObj
Зависит от задачи. В вашем случае, как мне кажется, норм будет
каждый кей со значением потом передается в пропсах в свой дочерный компонент и там зависимо от значения (true или false) он меняется (текст превращается в инпут)
Норм, правда, думаю, ваш объект можно было бы разложить на поля в компоненте
в смысле в дочерной разложить? чтобы в родителе не хранить?
public config: {key1: boolean, key2: boolean ....} => public key1: boolean; public key2: boolean; ...
избегай мутаций всегда. используй спред и в нем можешь указать свойство obj = {...obj, key: !obj.key} как-то так
ок(( спасибо. С ними проще писать)
еще лучше пометить свойства интерфейса readonly или сделать obj:Readonly<Obj> = ...
то еще больше усложнит читаемость((
это альтернатива. дай реальный пример как создается obj
вот тут у меня немного написано https://github.com/evoytenkoapps/angular-best-practices#typescript
да, эту ссылку ссылку я себе на днях сохранил)) но никак не дочитаю...
readonly Readonly спред - это все отличная защита от "Дурака"
учту. Я слышал, что используют readonly, но у самого как-то руки не доходят еще и это указывать...
эти вещи сильно помогают при стратегии onPush , с ними она работает корректней. меньше багов будет, что где-то что-то не обновилось.
а... ну с onPush бывали баги. Так намучился)) что теперь только в очень простых компонентах прописываю
надо наоборот- писать его везде и всегда. даже можно по умолчанию встроить в ангуляр.джсон у меня написано
имхо, в этом случае это оверхед. Это хорошая практика в 99%, но здесь просто объект с флажками, уникальный случай
вот очередной перл с rxjs с моего проекта, т.к сказать в студию. что тут не так? map((data) => { if (data) { data = this.buildApiVersionsTree(data); } return data; }),
Хороший код, будто я в 4 утра писал
ну здесь как-то интересно написано, вроде) data = this.buildApiVersionsTree(data); что дату и в параметр функци и присвоили самой дате... а может это и нормально, просто так никогда не делал
тут по идее выше меняется ссылка data. что не есть хорошо. правильней как-то так map((data) => data ? this.buildApiVersionsTree(data): data)
привет. у нас это декоратор сторы NGXS. указал по своему проекту. если смущает уберу
не хочу на себя такую отвественность брать) но можно написать наверное что это из ngxs как ты выше сделал
лады. закину в todo)
Обсуждают сегодня