Команда ng-book 2 разработала чат-приложение с использованием Angular 2, RxJS, Angular CLI, Webpack, TypeScript, Services, Injectables, Karma, Forms и tslint. Цель — показать, как использовать шаблон архитектуры данных Observables, как писать инъекционные сервисы в Angular 2 и асинхронные компоненты, работающие с RxJS.
Демо-версия доступна по ссылке.
# clone the repo git clone https://github.com/ng-book/angular2-rxjs-chat.git # change into the repo directory cd angular2-rxjs-chat # install npm install # run npm start
Перейдите по адресу http://localhost:4200 в браузере.
Приложение состоит из трех модулей:
Message
— содержит отдельные сообщения чата;Thread
— содержит метаданные для группы Message
;User
— содержит данные об отдельном пользователе.Также для каждой модели есть три услуги:
MessagesService
— управляет потоками сообщений;hreadsService
— управляет потоками Threads
;UserService
— управляет потоком текущего пользователя User
.Три компонента верхнего уровня:
ChatNavBar
— для верхней панели навигации подсчета непрочитанных сообщений;ChatThreads
— для интерактивного списка тем;ChatWindow
— окно, где проводится текущий разговор.Каждый сервис публикует данные в виде потоков RxJS. Клиенты службы подписываются на эти потоки, чтобы получать уведомления об изменениях.
MessagesService
— это основа приложения. Все новые сообщения добавляются в потом newMessages
. Все новые потоки являются производными от прослушивания newMessages
. Потоки, предоставляемые ThreadsService
, создаются путем прослушивания потока сообщений.
Примечание: есть несколько других полезных потоков, которые предоставляют сервисы:
Например, MessagesService
предоставляет поток сообщений, который является потоком списка всех текущих сообщений. messages
выдает массив для каждой записи. Аналогично ThreadsService
предоставляет список хронологически упорядоченных потоков в orderThreads
и так далее.
В приложении реализовано несколько чат-ботов. Например:
Шаг 1: Установите Node.js (авторы рекомендуют версию 4.1 и выше).
Проверить версию можно следующей командой:
$ node -v vv4.1...
Шаг 2: Установите зависимости.
npm install
npm run go
Затем перейдите по адресу http://localhost:4200 в браузере.
Запуск тестов можно проводить с помощью следующей команды:
npm run test
Вот и все! После стабилизации разработки Angular 2 авторы планируют внести в репозиторий два больших изменения:
ON_PUSH
. Вместо наблюдаемых объектов для улучшения производительности компонентов.Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…
В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…
Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…
Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…
Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…
IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…