{"id":142321,"date":"2021-03-19T10:38:57","date_gmt":"2021-03-19T10:38:57","guid":{"rendered":"https:\/\/devdays.lt\/?page_id=142321"},"modified":"2021-03-23T15:15:17","modified_gmt":"2021-03-23T15:15:17","slug":"ngrx-state-management-in-angular","status":"publish","type":"page","link":"https:\/\/devdays.lt\/ngrx-state-management-in-angular\/","title":{"rendered":"NgRxState Management in Angular"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;0px||0px||true|&#8221; global_module=&#8221;142342&#8243;][et_pb_row module_id=&#8221;sticky&#8221; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#fc5a1b&#8221; width=&#8221;100%&#8221; max_width=&#8221;2560px&#8221; custom_padding=&#8221;16px||16px||true|&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221;][et_pb_text _builder_version=&#8221;4.9.0&#8243; _module_preset=&#8221;default&#8221; link_font=&#8221;|600|||||||&#8221; link_text_color=&#8221;#FFFFFF&#8221; link_font_size=&#8221;20px&#8221; link_font_size__hover_enabled=&#8221;on|hover&#8221; link_font_size__hover=&#8221;21px&#8221;]<\/p>\n<p style=\"text-align: center;\"><a href=\"\/tickets\/\">Easter Offer: Get 3 For 2 tickets here!<\/a><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; disabled_on=&#8221;on|on|off&#8221; admin_label=&#8221;Home&#8221; module_id=&#8221;Home&#8221; _builder_version=&#8221;4.0.6&#8243; background_enable_color=&#8221;off&#8221; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_start=&#8221;rgba(10,30,96,0.5)&#8221; background_color_gradient_end=&#8221;rgba(10,30,96,0.5)&#8221; background_color_gradient_overlays_image=&#8221;on&#8221; background_image=&#8221;https:\/\/devdays.lt\/wp-content\/uploads\/2020\/01\/devd-201-1368&#215;855-1.jpg&#8221; custom_margin=&#8221;0px|0px|0px|0px&#8221; bottom_divider_style=&#8221;arrow2&#8243; bottom_divider_color=&#8221;#ffffff&#8221; bottom_divider_height=&#8221;50px&#8221; bottom_divider_flip=&#8221;vertical&#8221; global_module=&#8221;137943&#8243;][et_pb_fullwidth_header text_orientation=&#8221;center&#8221; background_overlay_color=&#8221;rgba(0,43,94,0.63)&#8221; _builder_version=&#8221;4.4.2&#8243; title_font=&#8221;|700|||||||&#8221; title_text_color=&#8221;#ffffff&#8221; title_font_size=&#8221;55px&#8221; background_color=&#8221;rgba(255, 255, 255, 0)&#8221; custom_button_one=&#8221;on&#8221; button_one_text_color=&#8221;#509af5&#8243; button_one_bg_color=&#8221;#ffffff&#8221; button_one_border_color=&#8221;#ffffff&#8221; button_one_font=&#8221;|600|||||||&#8221; button_one_use_icon=&#8221;off&#8221; custom_button_two=&#8221;on&#8221; button_two_text_color=&#8221;#509af5&#8243; button_two_border_color=&#8221;#509af5&#8243; button_two_font=&#8221;|600|||||||&#8221; button_two_icon_color=&#8221;#509af5&#8243; background_layout=&#8221;light&#8221; custom_margin=&#8221;|||&#8221; custom_padding=&#8221;50px||60px||false|false&#8221; button_one_border_color_hover=&#8221;#509af5&#8243; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_one_border_color__hover_enabled=&#8221;on&#8221; button_one_border_color__hover=&#8221;#509af5&#8243; button_two_border_color__hover_enabled=&#8221;off&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_one_letter_spacing__hover_enabled=&#8221;off&#8221; button_two_letter_spacing__hover_enabled=&#8221;off&#8221; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221;]<\/p>\n<h1>DevDays Europe <span style=\"color: #509bf5;\">2021<\/span><\/h1>\n<div class=\"header-icons-container\">\n<div>\n<p><img class=\"wp-image-124282 aligncenter size-full\" data-src=\"https:\/\/devdays.lt\/testovyj\/assets\/images\/calendar-icon.png\" alt=\"date\" src=\"https:\/\/devdays.lt\/testovyj\/assets\/images\/calendar-icon.png\" \/><\/p>\n<p class=\"header-icons-calendar\">June 8-10<\/p>\n<\/div>\n<div>\n<p><img class=\"wp-image-124282 aligncenter size-full\" data-src=\"https:\/\/devdays.lt\/testovyj\/assets\/images\/venue.png\" alt=\"venue\" src=\"https:\/\/devdays.lt\/testovyj\/assets\/images\/venue.png\" \/><\/p>\n<p class=\"header-icons-venue\">Vilnius and Online<\/p>\n<\/div>\n<\/div>\n<p>[\/et_pb_fullwidth_header][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; custom_padding_last_edited=&#8221;on|tablet&#8221; _builder_version=&#8221;4.0.6&#8243; background_enable_color=&#8221;off&#8221; custom_padding=&#8221;30px|||||&#8221; custom_padding_tablet=&#8221;30px||||false|false&#8221; custom_padding_phone=&#8221;0px||||false|false&#8221;][et_pb_row column_structure=&#8221;2_5,3_5&#8243; _builder_version=&#8221;4.4.2&#8243; background_color=&#8221;#ffffff&#8221; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_start=&#8221;#c6c6c6&#8243; background_color_gradient_end=&#8221;#ffffff&#8221; background_color_gradient_start_position=&#8221;19%&#8221; width_tablet=&#8221;100%&#8221; width_phone=&#8221;&#8221; width_last_edited=&#8221;on|phone&#8221; max_width=&#8221;850px&#8221; custom_margin=&#8221;||15px||false|false&#8221; custom_padding=&#8221;10px|0px|10px|0px|true|true&#8221; border_radii=&#8221;off|3px|3px||&#8221; border_radii_tablet=&#8221;off|0px|0px||&#8221; border_radii_phone=&#8221;&#8221; border_radii_last_edited=&#8221;on|desktop&#8221; box_shadow_style=&#8221;preset1&#8243; locked=&#8221;off&#8221;][et_pb_column type=&#8221;2_5&#8243; _builder_version=&#8221;3.29.3&#8243;][et_pb_image src=&#8221;https:\/\/devdays.lt\/wp-content\/uploads\/2021\/03\/DD_Devlin_Duldulao_500x500_round.png&#8221; title_text=&#8221;DD_Adrienne_Tacke_500x500_round (2)&#8221; align=&#8221;center&#8221; _builder_version=&#8221;4.9.0&#8243; max_width=&#8221;80%&#8221; custom_padding=&#8221;0px|||||&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;3_5&#8243; _builder_version=&#8221;3.29.3&#8243;][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#509af5&#8243; text_font_size=&#8221;30px&#8221; custom_margin=&#8221;30px||||false|false&#8221; custom_margin_tablet=&#8221;&#8221; custom_margin_phone=&#8221;0px||||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1200ms&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221;]<\/p>\n<p>Devlin Duldulao<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_text_color=&#8221;#424242&#8243; text_font_size=&#8221;16px&#8221; custom_padding=&#8221;||10px||false|false&#8221; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1200ms&#8221; animation_delay=&#8221;50ms&#8221; text_orientation_tablet=&#8221;&#8221; text_orientation_phone=&#8221;center&#8221; text_orientation_last_edited=&#8221;on|phone&#8221;]<strong>Position:<\/strong> Full-stack Cloud Developer<\/p>\n<p><strong>Company:<\/strong> inmeta<\/p>\n<p><strong>Country:<\/strong> Norway[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row custom_padding_last_edited=&#8221;on|tablet&#8221; _builder_version=&#8221;4.2.2&#8243; background_color=&#8221;#ffffff&#8221; z_index=&#8221;0&#8243; width_tablet=&#8221;100%&#8221; width_phone=&#8221;&#8221; width_last_edited=&#8221;on|tablet&#8221; max_width=&#8221;850px&#8221; max_width_tablet=&#8221;850px&#8221; max_width_phone=&#8221;&#8221; max_width_last_edited=&#8221;on|tablet&#8221; custom_padding=&#8221;30px|46px|30px|46px|false|true&#8221; custom_padding_tablet=&#8221;|30px||30px|true|true&#8221; custom_padding_phone=&#8221;|20px||20px|false|true&#8221; border_radii=&#8221;off|||3px|3px&#8221; box_shadow_style=&#8221;preset1&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.29.3&#8243;][et_pb_text _builder_version=&#8221;4.0.6&#8243; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#509bf5&#8243; text_font_size=&#8221;22px&#8221; header_font=&#8221;|600|||||||&#8221; header_text_align=&#8221;left&#8221; header_text_color=&#8221;#002258&#8243; custom_margin=&#8221;||5px|0px&#8221; custom_padding=&#8221;10px|||&#8221;]<\/p>\n<p>Biography<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_font=&#8221;||||||||&#8221; text_font_size=&#8221;15px&#8221; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1200ms&#8221; animation_delay=&#8221;150ms&#8221; locked=&#8221;off&#8221;]<\/p>\n<p style=\"text-align: justify;\">Devlin Duldulao is a Filipino full-stack cloud engineer based in Norway. He is a Microsoft MVP, an Auth0 Ambassador, a trainer, a conference speaker, an author, and a senior consultant at Inmeta. He loves going to universities and user groups to share his expertise.<\/p>\n<p>[\/et_pb_text][et_pb_social_media_follow use_icon_font_size=&#8221;on&#8221; icon_font_size=&#8221;15px&#8221; _builder_version=&#8221;4.9.0&#8243; text_orientation=&#8221;left&#8221; custom_margin=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1200ms&#8221; animation_delay=&#8221;50ms&#8221; locked=&#8221;off&#8221;][et_pb_social_media_follow_network social_network=&#8221;linkedin&#8221; url=&#8221;https:\/\/www.linkedin.com\/in\/devlinduldulao&#8221; _builder_version=&#8221;4.9.0&#8243; background_color=&#8221;#007bb6&#8243; follow_button=&#8221;off&#8221; url_new_window=&#8221;on&#8221;]linkedin[\/et_pb_social_media_follow_network][\/et_pb_social_media_follow][et_pb_text _builder_version=&#8221;4.1&#8243; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#0a1e60&#8243; text_font_size=&#8221;20px&#8221; header_font=&#8221;|600|||||||&#8221; header_text_align=&#8221;left&#8221; header_text_color=&#8221;#002258&#8243; custom_margin=&#8221;||5px|0px&#8221; custom_padding=&#8221;10px|||&#8221;]Workshop[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;#ffffff&#8221; header_font=&#8221;|600|||||||&#8221; header_text_color=&#8221;#509bf5&#8243; max_width=&#8221;100%&#8221; custom_margin=&#8221;0px||0px||false|false&#8221; custom_padding=&#8221;0px|||&#8221; saved_tabs=&#8221;all&#8221;]<\/p>\n<h1>NgRx State Management in Angular<\/h1>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;#666666&#8243; text_font_size=&#8221;15px&#8221; custom_margin=&#8221;||15px||false|false&#8221; custom_padding=&#8221;0px||0px||false|false&#8221;]<\/p>\n<p style=\"text-align: justify;\">Learn how to use NgRx to solve complex managing of states in large Angular applications. You will be using NgRx, a library that uses Redux design patterns and Rxjs library, pragmatically. Alongside using NgRx are enterprise Angular architecture, Reactive Forms, and Angular Material.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.1&#8243; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#509bf5&#8243; text_font_size=&#8221;20px&#8221; header_font=&#8221;|600|||||||&#8221; header_text_align=&#8221;left&#8221; header_text_color=&#8221;#002258&#8243; custom_margin=&#8221;||5px|0px&#8221; custom_padding=&#8221;10px|||&#8221;]Agenda[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;#666666&#8243; text_font_size=&#8221;15px&#8221; custom_margin=&#8221;||15px||false|false&#8221; custom_padding=&#8221;0px||||false|false&#8221;]<\/p>\n<p><span>Step-by-step process of learning NGRX in Angular<\/span><\/p>\n<ul>\n<li><span> <\/span><span>Part 1: NgRx fundamentals:<\/span>\n<ul>\n<li><span> <\/span><span>Getting started with NgRx<\/span><\/li>\n<li><span> <\/span><span>Setting up NgRx<\/span><\/li>\n<li><span> <\/span><span>Writing an action type, effect, and reducer<\/span><\/li>\n<li><span> <\/span><span>Configuring a store<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span> <\/span><span>Part 2: CRUD in NgRx:<\/span>\n<ul>\n<li><span> <\/span><span>Writing a selector and using a selector in a component<\/span><\/li>\n<li><span> <\/span><span>Using a dispatcher in a component<\/span><\/li>\n<li><span> <\/span><span>Deleting an object with and without a side effect<\/span><\/li>\n<li><span> <\/span><span>Adding, and updating an object with a side effect<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span> <\/span><span>Part 3: Exercise:<\/span>\n<ul>\n<li><span> <\/span><span>Implementation of NgRx using what you have learned<\/span><\/li>\n<li><span>Code reviews of the exercise<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.1&#8243; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#509bf5&#8243; text_font_size=&#8221;20px&#8221; header_font=&#8221;|600|||||||&#8221; header_text_align=&#8221;left&#8221; header_text_color=&#8221;#002258&#8243; custom_margin=&#8221;||5px|0px&#8221; custom_padding=&#8221;10px|||&#8221;]Objectives[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;#666666&#8243; text_font_size=&#8221;15px&#8221; custom_margin=&#8221;||15px||false|false&#8221; custom_padding=&#8221;0px||||false|false&#8221;]<\/p>\n<p style=\"text-align: justify;\"><span>This workshop&#8217;s main goal is to teach you how to properly use a state management library in general. You don\u2019t have to put all your state in a store. In this workshop, you will know some use cases of making a state globally accessible and use cases where a local state does not need to be included in a global state or store. This will help you write large Angular apps in the future and help you find more job opportunities by leveling up your skill.<\/span><\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.1&#8243; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#509bf5&#8243; text_font_size=&#8221;20px&#8221; header_font=&#8221;|600|||||||&#8221; header_text_align=&#8221;left&#8221; header_text_color=&#8221;#002258&#8243; custom_margin=&#8221;||5px|0px&#8221; custom_padding=&#8221;10px|||&#8221;]Target audience[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;#666666&#8243; text_font_size=&#8221;15px&#8221; custom_margin=&#8221;||15px||false|false&#8221; custom_padding=&#8221;0px||||false|false&#8221;]<\/p>\n<p style=\"text-align: justify;\">This workshop is for developers who have tried Angular or have experienced building Angular apps and how to manage to reflect and sync states between deeply nested components.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.1&#8243; text_font=&#8221;|600|||||||&#8221; text_text_color=&#8221;#509bf5&#8243; text_font_size=&#8221;20px&#8221; header_font=&#8221;|600|||||||&#8221; header_text_align=&#8221;left&#8221; header_text_color=&#8221;#002258&#8243; custom_margin=&#8221;||5px|0px&#8221; custom_padding=&#8221;10px|||&#8221;]Technical requirements[\/et_pb_text][et_pb_text _builder_version=&#8221;4.9.0&#8243; text_font=&#8221;||||||||&#8221; text_text_color=&#8221;#666666&#8243; text_font_size=&#8221;15px&#8221; custom_margin=&#8221;||8px||false|false&#8221; custom_padding=&#8221;0px||||false|false&#8221;]<\/p>\n<p><span>Latest VS Code, latest Nodejs runtime lts version, Chrome browser, npm cli, and Angular cli.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.0.6&#8243; custom_padding=&#8221;50px||||false|false&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.0.6&#8243;][et_pb_text _builder_version=&#8221;4.4.2&#8243; text_font=&#8221;|700|||||||&#8221; text_text_color=&#8221;#666666&#8243; animation_style=&#8221;fade&#8221; animation_duration=&#8221;1400ms&#8221; animation_delay=&#8221;50ms&#8221; global_module=&#8221;128838&#8243;]<\/p>\n<p style=\"cursor: pointer; text-align: center;\" onclick=\"goBack()\">\u00ab Back<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DevDays Europe 2021 Devlin Duldulao Position: Full-stack Cloud Developer Company: inmeta Country: Norway Biography Devlin Duldulao is a Filipino full-stack cloud engineer based in Norway. He is a Microsoft MVP, an Auth0 Ambassador, a trainer, a conference speaker, an author, and a senior consultant at Inmeta. He loves going to universities and user groups to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":""},"_links":{"self":[{"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/pages\/142321"}],"collection":[{"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/comments?post=142321"}],"version-history":[{"count":6,"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/pages\/142321\/revisions"}],"predecessor-version":[{"id":142591,"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/pages\/142321\/revisions\/142591"}],"wp:attachment":[{"href":"https:\/\/devdays.lt\/wp-json\/wp\/v2\/media?parent=142321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}