Это мои личные мысли о проекте Angular2-Meteor после некоторого его использования, надеюсь, он принесет пользу сообществу.

Социальный учебник — это хорошо написанный учебник, но он просто помогает вам понять, как вы можете связать Angular 2 и Meteor. Мне потребовалось некоторое время, чтобы осознать это. Для реального использования вам нужно больше.

Для реального проекта вам нужно следовать шаблону Angular 2. Например, вы не должны подписываться на данные в компоненте, вместо этого вы должны делать это в сервисе (как использовать сервис не рассматривается в учебнике Socially, но сервис очень и очень важен). Если вы подписываете одни и те же данные в разных компонентах, производительность будет очень плохой.

Для пакета angular2-meteor-accounts-ui он предназначен только для демонстрационного показа и быстрого прототипа. Я бы не использовал его ни в одном из моих реальных проектов. Причины ниже:

1. Вам не нужен @RequireUser(). Лучший способ — ограничить доступ пользователей на уровне маршрутизатора. Напишите пользовательскую директиву, которая расширяет RouterOutlet. Для этого нужен только один файл вместо использования @RequireUser() в каждом компоненте. И это может позволить вам легко написать сложную логику для управления доступом.
2. Вам не нужен @InjectUser(). Если у вас есть настраиваемые поля, а не поле профиля пользователя, вам все равно нужно подписаться самостоятельно. И если вы подписываете данные currentUser в разных компонентах. Это очень сильно ухудшит производительность.
3. Для реального проекта вам также потребуется настроить пользовательский интерфейс для регистрации и входа в систему.

Без использования angular2-meteor-accounts-ui вам нужно написать собственную службу currentUser с помощью RxJS 5 (в данном случае BehaviorSubject) и использовать внедрение зависимостей. Это может сделать ваше приложение как минимум в 10 раз быстрее вместо повторной подписки на одну и ту же коллекцию снова и снова.

Примечание. RxJS 5 не является обязательным, но как только вы начнете его использовать, это поможет вам сэкономить много времени на написании кода и сделать логику вашего приложения чистой! Вы обнаружите, что RxJS 5 просто потрясающий! (Обратите внимание, что EventEmitter использует Observable внутри, но этого недостаточно). В большинстве случаев вы по-прежнему хотите использовать BehaviorSubject, ReplaySubject или AsyncSubject из RxJS 5).

Большинство вопросов, которые вы встретите в будущем, на самом деле связаны либо с Angular 2, либо с проблемой Meteor. Angular2-Meteor просто помогает соединить Angular 2 и Meteor.

Angular 2 и Meteor очень большие. Так что изучайте Angular 2 и Meteor по отдельности, углубляйтесь, а затем используйте их вместе! Продолжай учиться!

(Первоначально размещено в Метеорный форум)