Изучаем Redux и пишем свой Mini-Redux

Предлагаю вам перевод статьи Learn Redux by coding a Mini-Redux.

Существует множество ресурсов по изучению Redux: официальная документация, примеры, учебники, статьи, видео уроки… Имея такое большое количество информации многие начинающие Redux разработчики порой просто теряются в ней.

Другой подход изучения – это самостоятельно написать прототип Redux, чтобы понять основы библиотеки. Для меня это был реальный прорыв.

Не беспокойтесь, это совсем не сложно. Ядро Redux, как вы убедитесь, достаточно просто.

Для начала нам необходимо общее понимание что делает Redux.

Continue reading

Boring calls from Recruiters? Get pated for it!

Answering 100500 times the same stupid questions via phone (taking in account that all this information is presented on the linkedIn profile) makes me mad.

It’s not possible to conceal your phone number, sooner or later it will appear in one of call-maniac agencies databases.

I also tried to setup a kind of phone firewall for unknown numbers, but it also not a solution because there is probability that you will miss important call.

And finally I came to idea of setting up premium-rate phone number and placing it everywhere together with profile. So we kill two birds with one stone: filter recruiters that even don’t know you and don’t want to read the profile before call, and also get some money for this boring time.

Unfortunately it’s not that easy to arrange such kind of number and it’s quite expensive. So if you have any idea how to do it – please share.

Rxjs: 6 операторов, которые вы должны знать

Перевод поста RxJS — Six Operators That you Must Know.

1. Concat

удобно, когда важен порядок вывода последовательностей.

2. forkJoin

– аналог Promise.all()

3. mergeMap

– применяется, когда у вас есть Observable, элементы последовательности которого тоже Observable, а вам хочется объединить все в один поток (чтобы все элементы внутренние Observable порождали событие основного). Не путать со switchMap!

 

4. pairwise

– возвращает не только текущее значение, но в месте с ним и предыдущее значение последовательности

5. switchMap

switchMap делает complete для предыдущего Observable, то есть в данном случае у нас всегда будет только один активный Observable для интервала:

а вот mergeMap нам бы на каждый клик порождал новую interval последовательность.

6. combineLatest

– получить последние значения из каждой последовательности при эммите одного из них:

Angular: Пример структурной директивы

Структурные директивы – директивы изменяющие DOM. Синтаксис начинается со специального символа – * . Мы уже знаем что в Angular существуют такие структурные директивы как *ngIf и *ngFor.

Самый лучший на мой взгляд пример структурной директивы на данный момент предоставлен командой rangle.io: директива, которая задает задержку перед выводом компонента, то есть, например:

<card *appDelay="5000"></card>

– элемент card будет выведен(добавлен в DOM) через 5 секунд.

Continue reading

Новое в Angular4

Итак, если резюмировать, что появилось в Angular версии 4:

  • расширенный синтаксис ngIf – появляется else
  • возможность сохранять значение полученное из async pipe
  • новая директива NgComponentOutlet
  • анимация переходит в отдельный пакет (@angular/platform-browser/animations)
  • серверный рендеринг переходит в основной репозиторий ( пакет @angular/platform-server)
  • переход на Typescript 2.2
  • deprecated: template и OpaqueToken

Angular: Меняем title в зависимости от стейта

Для того чтобы сделать динамический title в Angular (2+) нам не нужно придумывать свои велосипеды как это было в AngularJs. Достаточно просто использовать сервис Title, у которого есть методы getTitle и setTitle.

То есть если вы просто хотите задать тайтл достаточно сделать:

export class AppComponent implements OnInit {
  constructor(private titleService: Title) {}
  ngOnInit() {
    this.titleService.setTitle('My Page Title');
  }
}

При этом Title подключается из модуля @angular/platform-browser:

import { Title } from '@angular/platform-browser';

Тут вроде как все понятно, но что, если мы захотим динамически менять тайтл в зависимости от стейта/странички на которой находимся?

Continue reading

Angular: OpaqueToken или InjectionToken

Не успели все познакомиться с понятием OpaqueToken, как оно уже становиться deprecated. Теперь нужно использовать вместо него InjectionToken.

Давайте попробуем разобраться почему.

Continue reading