Angular: Что такое forwardRef?

Мы иногда встречаем в коде:

и сразу не понятно, что это магическая функция forwardRef. На самом деле все просто: forwardRef – это функция-обертка. Зачем она нужна? Чтобы мы могли задавать значением свойства сущности, которые объявлены ниже (иначе будет ошибка):

Также можно глянуть в исходники, и убедиться что это просто метод-обертка:

Формы и валидация данных в Angular

В отличии от AngularJS в Angular сделали целый модуль, который помогает в обработке форм.

Angular предлагает 2 подхода работы с формами:

  • основанный на шаблонах (template-driven)
  • реактивный (reactive)

Шаблонный более традиционный для декларативного подхода фреймворка. Реактивный появился позже и считается более прогрессивным и гибким. Мы разберем оба подхода.

Continue reading

Запускаем Angular виджет в приложение без Angular

Очень маловероятно, что вы захотите добавлять Angular в приложение только для того, чтобы завести один компонент. Рекомендую смотреть на этот пост, не как на практическое руководство к действию, а как на работу по исследованию возможностей фреймворка.

Continue reading

Что нового в Angular 4.2

  • оператор не нулевого присвоения ( Non-null assertion operator ) теперь можно использовать в шаблонах:

    <h2>{{ user!.name }}</h2>
  • очень много изменений по анимации (смотрите в отдельном посте)
  • добавили поддержку mix & max стандартных валидаторов (но уже в 4.3.0-beta.0 удалили эту возможность признав как breaking change)
  • в тестах появились 3 вспомогательных метода:
    • TestBed.overrideProvider()приближает возможность тестировать в AOT,
    • flush() – для сбрасывания всех счетчиков и выполнения колбэков всех асинхронных операций,
    • fixture.whenRenderingDone() – возвращает промис, который ждет выполнения всех анимаций

JSFuck or how I love Javascript endless power

You can write your JS code without any alphabet character, seriously! I would say even more you can write your JS code only with 6! characters: []()!+

You could easily get several string like “true”, “false”, “undefined” and other by doing simple operations with brackets:

and now you can take any letter :

You can try to challenge yourself and convert any JS code into this format (that is called JSFuck) and there is even online converter that will help you with this task.

Angular & Rxjs: Отписываться или не отписываться?

Как вы наверное уже знаете при подписке на обозреваемую последовательность либо просто событие в Javascript вы обычно должны в определенный момент отписываться, чтобы освободить память. Иначе это приведет к утечке памяти.

Мы рассмотрим основные случаи, когда вы должны отписываться в ngOnDestroy хуке компонента, а также случаи, когда можно не отписываться.

Continue reading

Изучаем 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.