Reactive
Programming with
Angular and ngrx
Learn to Harness the Power of
Reactive Programming with
RxJS and ngrx Extensions
—
Oren Farhi
Reactive
Programming with
Angular and ngrx
Learn to Harness the Power of
Reactive Programming with RxJS
and ngrx Extensions
Oren Farhi
Reactive Programming with Angular and ngrx: Learn to Harness the Power of
Reactive Programming with RxJS and ngrx Extensions
Oren Farhi
Lod, Israel
ISBN-13 (pbk): 978-1-4842-2619-3 ISBN-13 (electronic): 978-1-4842-2620-9
DOI 10.1007/978-1-4842-2620-9
Library of Congress Control Number: 2017941328
Copyright © 2017 by Oren Farhi
This work is subject to copyright. All rights are reserved by the Publisher, whether the
whole or part of the material is concerned, specifically the rights of translation, reprinting,
reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other
physical way, and transmission or information storage and retrieval, electronic adaptation,
computer software, or by similar or dissimilar methodology now known or hereafter
developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark
symbol with every occurrence of a trademarked name, logo, or image we use the names, logos,
and images only in an editorial fashion and to the benefit of the trademark owner, with no
intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identified as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the
date of publication, neither the authors nor the editors nor the publisher can accept any legal
responsibility for any errors or omissions that may be made. The publisher makes no warranty,
express or implied, with respect to the material contained herein.
Managing Director: Welmoed Spahr
Editorial Director: Todd Green
Acquisitions Editor: Louise Corrigan
Development Editor: James Markham
Technical Reviewer: Luca Mezzalira
Coordinating Editor: Nancy Chen
Copy Editor: April Rondeau
Artist: SPi Global
Distributed to the book trade worldwide by Springer Science+Business Media New York,
233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505,
e-mail orders-ny@springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC
is a California LLC and the sole member (owner) is Springer Science + Business Media
Finance Inc. (SSBM Finance Inc.). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail rights@apress.com, or visit
http://www.apress.com/rights-permissions.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our
Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available
to readers on GitHub via the book’s product page, located at www.apress.com/9781484226193.
For more detailed information, please visit http://www.apress.com/source-code.
Printed on acid-free paper
is book is dedicated to the love of my life, Adi, for always
supporting me and allowing me to move forward; to my lovely kids,
I hope this will inspire you in your ways; to my mother and father for
loving me unconditionally; and to my entire supportive family.
v
Contents at a Glance
About the Author ���������������������������������������������������������������������������� xiii
About the Technical Reviewer ��������������������������������������������������������� xv
Introduction ����������������������������������������������������������������������������������� xvii
■Chapter 1: Getting Started with the Echoes Player Lite App ���������� 1
■Chapter 2: Getting Familiar with Boilerplate for Development ����� 13
■Chapter 3: Adding State Management with ngrx/store ���������������� 31
■ Chapter 4: Creating Reactive Components:
Presentational and Container �������������������������������������������������������� 51
■ Chapter 5: Understanding Services with Reactive Programming ���� 73
■Chapter 6: Managing Side Effects with ngrx/effects �������������������� 99
■Chapter 7: Reactive Forms and Common Solutions ������������������� 123
Index ���������������������������������������������������������������������������������������������� 145