{"id":3032,"date":"2024-09-30T10:00:09","date_gmt":"2024-09-30T08:00:09","guid":{"rendered":"https:\/\/www.thecodecampus.de\/blog\/?p=3032"},"modified":"2026-04-09T11:26:24","modified_gmt":"2026-04-09T09:26:24","slug":"ganz-einfach-zu-angular-signals-migrieren","status":"publish","type":"post","link":"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/","title":{"rendered":"Angular Signals Teil 4 &#8211; Ganz einfach zu Signals migrieren"},"content":{"rendered":"<p><strong><em>Click <a href=\"https:\/\/www.thecodecampus.de\/blog\/migrate-easily-to-angular-signals\/\">here<\/a> for the english version of this blog post.<\/em><\/strong><\/p>\n<h2>Mach Dir Dein Leben leichter und migriere zu Signals mit Angular 17<\/h2>\n<p>In den ersten drei Teilen dieser Reihe <a href=\"https:\/\/www.thecodecampus.de\/blog\/mit-angular-signals-effiziente-anwendungen-entwickeln\/\">Angular Signals Teil 1 \u2013 How-to Guide f\u00fcr Angular Signals<\/a>, <a href=\"https:\/\/www.thecodecampus.de\/blog\/wie-kombiniert-man-angular-signals-und-rxjs\/\">Angular Signals Teil 2 \u2013 Wie kombiniert man Angular Signals und RxJS<\/a>\u00a0und <a href=\"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/\">Angular Signals Teil 3 \u2013 Welche Vorteile haben Signal Inputs<\/a> haben wir uns angeschaut was Angular Signals sind, wie sie sich mit RxJS kombinieren lassen und was die Vorteile von Signal Inputs sind. Dieses Mal wollen wir Dir zeigen wie sich alter Angular Code mit Hilfe von ngxtension ganz einfach zu Signals migrieren l\u00e4sst, damit Du so schnell wie m\u00f6glich die Vorteile von Signals nutzen kannst.<\/p>\n<p>In den letzten Jahren hat sich Angular kontinuierlich weiterentwickelt, um Entwicklern leistungsf\u00e4higere und effizientere Werkzeuge zur Verf\u00fcgung zu stellen. Ein wichtiger Schritt in dieser Entwicklung ist die Einf\u00fchrung von Angular Signals in Angular 17. Mit Signals k\u00f6nnen Entwickler reaktive Zust\u00e4nde auf eine intuitivere und effizientere Weise verwalten. Dennoch stellt sich f\u00fcr viele die Frage, wie Sie Ihren \u00e4lteren Angular Code nahtlos auf Angular Signals migrieren k\u00f6nnen, ohne den Entwicklungsfluss zu unterbrechen.<\/p>\n<p>An dieser Stelle kommen Erweiterungen ins Spiel, die diese Migration vereinfachen und beschleunigen. In diesem Artikel stellen wir Dir ngxtension und zwei Erweiterungen vor, die uns in der Migration sehr geholfen haben und mit der wir effizient und strukturiert auf das neue Signal-basierte Paradigma migrieren konnten.<\/p>\n<h2>Ngxtension<\/h2>\n<p><a href=\"https:\/\/ngxtension.netlify.app\/\">Ngxtension<\/a> ist ein Framework und eine Bibliothek f\u00fcr Angular, das darauf abzielt, die Entwicklung von Angular-Anwendungen zu vereinfachen. Es bietet verschiedene Erweiterungen, Utility-Funktionen und Tools, die die Arbeit mit Angular-Komponenten, Services und Modulen erleichtern. Um ngxtension in Deinen Projekten zu verwenden kannst Du es z.B. \u00fcber die Angular CLI hinzuf\u00fcgen oder mit npm installieren.<\/p>\n<p>Befehl f\u00fcr Angular CLI:<\/p>\n<pre class=\"lang:default decode:true\">ng add ngxtension<\/pre>\n<p>npm Befehl:<\/p>\n<pre class=\"lang:default decode:true\">npm install ngxtension<\/pre>\n<p>Nachdem ngxtension jetzt installiert ist, wollen wir uns die Migration von Inputs und Outputs genauer anschauen. Die manuelle Migration von Inputs und Outputs auf die neuen <code>input()<\/code>&#8211; und <code>output()<\/code>-Funktionen kann eine m\u00fchsame und fehleranf\u00e4llige Aufgabe sein. Gl\u00fccklicherweise wird dieser Prozess durch die Verwendung von ngxtension fast komplett automatisiert.<\/p>\n<h2>Verwende ngxtension, um @Input zu Signal Inputs zu migrieren<\/h2>\n<p>Mit Angular v17.1 wurden Signal Inputs ver\u00f6ffentlicht und erm\u00f6glichen es uns Entwicklern seitdem, mehr deklarative und reaktive Codemuster zu verwenden. Aus diesem Grund ver\u00f6ffentlicht ngxtensions Schematics, die die Code-Migration f\u00fcr uns \u00fcbernehmen. Dabei wird unter anderem<\/p>\n<ul>\n<li>der gleichen Namen f\u00fcr die Inputs beibehalten.<\/li>\n<li>die gleichen Typen und Standardwerte beibehalten.<\/li>\n<li>die Komponenten Templates aktualisiert, um die neuen Signal Inputs zu verwenden.<\/li>\n<\/ul>\n<p>Mehr Informationen findest Du auch in der Dokumentation zur <a href=\"https:\/\/ngxtension.netlify.app\/utilities\/migrations\/signal-inputs-migration\/\">Signal Inputs Migration<\/a> von ngxtension.<\/p>\n<p>Mit dem folgenden Command kannst Du Deine alten <code>@Inputs()<\/code> zu Signal Inputs migrieren:<\/p>\n<pre class=\"lang:default decode:true\">ng g ngxtension:convert-signal-inputs<\/pre>\n<h3>Was genau macht die Signal Inputs Migration?<\/h3>\n<p>Hier sind einige Beispiele, um Dir einen \u00dcberblick und besseres Verst\u00e4ndnis \u00fcber die Unterschiede vor und nach der Migration der Inputs mit ngxtension zu geben. Daf\u00fcr haben wir zus\u00e4tzlich zu einem normalen Input auch einen Input mit einem Alias und einem default, also einem Ausgangswert, aufgef\u00fchrt.<\/p>\n<h4>Normaler Input:<\/h4>\n<p>Davor:<\/p>\n<pre class=\"lang:ts decode:true\">@Input() value: string;\r\n<\/pre>\n<p>Danach:<\/p>\n<pre class=\"lang:ts decode:true\">value = input&lt;string&gt;();\r\n<\/pre>\n<h4>Input mit alias:<\/h4>\n<p>Davor:<\/p>\n<pre class=\"lang:ts decode:true\">@Input('value') valueAlias: string;\r\n<\/pre>\n<p>Danach:<\/p>\n<pre class=\"lang:ts decode:true\">value = input&lt;string&gt;({ alias: 'value' });\r\n<\/pre>\n<h4>Input mit default Wert:<\/h4>\n<p>Davor:<\/p>\n<pre class=\"lang:ts decode:true\">@Input() value: string = 'default';\r\n<\/pre>\n<p>Danach:<\/p>\n<pre class=\"lang:ts decode:true \">value = input&lt;string&gt;({ initialValue: 'default' });\r\n<\/pre>\n<p><a style=\"display: inline-block;\" href=\"https:\/\/www.thecodecampus.de\/schulungen\/angular\">\n<picture><source srcset=\"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/04\/schulungen-tcc_frieder_WP_big.png\" media=\"(min-width: 1024px)\" \/><\/picture>\n<picture><source srcset=\"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/04\/schulungen-tcc_frieder_WP_medium.png\" media=\"(min-width: 600px)\" \/><\/picture>\n<picture><img decoding=\"async\" class=\"alignnone size-full wp-image-38\" src=\"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/04\/schulungen-tcc_frieder_WP_small.png\" alt=\"Angular Schulungen\" \/><\/picture>\n<\/a><\/p>\n<h2>Verwende ngxtension, um @Output zu migrieren<\/h2>\n<p>Die neue <code>output()<\/code>-Funktion wurde in Angular v17.3 eingef\u00fchrt. Analog zur <code>input()<\/code>-Funktion zur Erzeugung von Signal Inputs, kann die <code>output()<\/code>-Funktion zur Erzeugung von Outputs, ohne Decorator verwendet werden. Ngxtension hat spezielle Schematics ver\u00f6ffentlicht, die die Migration des Codes automatisieren.<\/p>\n<p>Wenn das Schema ausgef\u00fchrt wird, sucht es nach allen Decorators, die Outputs sind und konvertiert sie in funktionsbasierte Outputs. Dabei wird ebenfalls<\/p>\n<ul>\n<li>der gleichen Namen f\u00fcr die Outputs beibehalten.<\/li>\n<li>die gleichen Typen beibehalten.<\/li>\n<li>derselben Alias beibehalten, wenn er vorhanden ist.<\/li>\n<\/ul>\n<p>Mehr Informationen findest Du auch in der Dokumentation zur <a href=\"https:\/\/ngxtension.netlify.app\/utilities\/migrations\/new-outputs-migration\/\">New output() Migration<\/a> von ngxtension.<\/p>\n<p>Mit dem folgenden Command startest Du die Migration der <code>@Output<\/code>-Funktionen:<\/p>\n<pre class=\"lang:default decode:true\">ng g ngxtension:convert-outputs\r\n<\/pre>\n<h3>Was genau macht die output() Migration?<\/h3>\n<p>Auch hier haben wir zwei Beispiele, um Dir einen \u00dcberblick und besseres Verst\u00e4ndnis \u00fcber die Unterschiede vor und nach der Migration mit ngxtension zu geben.<\/p>\n<h4>Normaler Output:<\/h4>\n<p>Davor:<\/p>\n<pre class=\"lang:default decode:true\">@Output() change = new EventEmitter&lt;string&gt;();<\/pre>\n<p>Danach:<\/p>\n<pre class=\"lang:ts decode:true\">change: EventEmitter&lt;string&gt; = output&lt;string&gt;();<\/pre>\n<h4>Output mit alias:<\/h4>\n<p>Davor:<\/p>\n<pre class=\"lang:ts decode:true\">@Output('change') changeAlias = new EventEmitter&lt;string&gt;();<\/pre>\n<p>Danach:<\/p>\n<pre class=\"lang:ts decode:true\">change: EventEmitter&lt;string&gt; = output&lt;string&gt;({ alias: 'change' });<\/pre>\n<h2>Was kommt als n\u00e4chstes?<\/h2>\n<p>Da unser Code jetzt auf dem neusten Stand ist wollen wir uns im <a href=\"https:\/\/www.thecodecampus.de\/blog\/arbeite-besser-mit-signal-directives\/\">n\u00e4chsten Beitrag<\/a> dieser Artikelreihe einer etwas gr\u00f6\u00dferen Aufgabe widmen. Wir werden Dir Schritt f\u00fcr Schritt zeigen wie man eine Custom Directive auf Signal Inputs refactored, erkl\u00e4ren auf welche Punkte man besonders achten muss und welche Vorteile sich dadurch bieten.<\/p>\n<h2 id=\"Termin\u00fcbersicht\">Termin\u00fcbersicht der n\u00e4chsten Angular Schulungen<\/h2>\n<p><iframe height=\"600\" style=\"width: 100%;\" src=\"https:\/\/thecodecampus.de\/kalender\"><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In den ersten drei Teilen dieser Reihe haben wir uns angeschaut was Angular Signals sind, wie sie sich mit RxJS kombinieren lassen und was die Vorteile von Signal Inputs sind. Dieses Mal wollen wir Dir zeigen wie sich alter Angular Code mit Hilfe von ngxtension ganz einfach zu Signals migrieren l\u00e4sst, damit Du so schnell wie m\u00f6glich die Vorteile von Signals nutzen kannst.<\/p>\n","protected":false},"author":40,"featured_media":3123,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[73,164,163,168,169,151,162,167,79],"tags":[112,170,172,181,171,26,180,37,175,182,83],"class_list":["post-3032","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-angular","category-angular-17","category-angular-performance-optimization","category-angular-signals","category-change-detection","category-optimization","category-performance","category-signals","category-tooling","tag-angular","tag-angular-17","tag-angular-change-detection","tag-angular-performance-optimization","tag-angular-signals","tag-migration","tag-optimization","tag-performance","tag-reactive-programming","tag-signals","tag-tooling"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ganz einfach zu Angular Signals migrieren<\/title>\n<meta name=\"description\" content=\"Erfahre jetzt, wie du deine Inputs ganz einfach zu Angular Signals migrieren kannst und wie dir ngxtension auch bei Outputs helfen kann\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ganz einfach zu Angular Signals migrieren\" \/>\n<meta property=\"og:description\" content=\"Erfahre jetzt, wie du deine Inputs ganz einfach zu Angular Signals migrieren kannst und wie dir ngxtension auch bei Outputs helfen kann\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Development tips and tricks - theCodeCampus Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-30T08:00:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-09T09:26:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/11\/angular-signals-migration.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"1200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Marc Dommr\u00f6se\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marc Dommr\u00f6se\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/ganz-einfach-zu-angular-signals-migrieren\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/ganz-einfach-zu-angular-signals-migrieren\\\/\"},\"author\":{\"name\":\"Marc Dommr\u00f6se\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/person\\\/be8c4fcd8229783d0e9442dad8764770\"},\"headline\":\"Angular Signals Teil 4 &#8211; Ganz einfach zu Signals migrieren\",\"datePublished\":\"2024-09-30T08:00:09+00:00\",\"dateModified\":\"2026-04-09T09:26:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/ganz-einfach-zu-angular-signals-migrieren\\\/\"},\"wordCount\":755,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/ganz-einfach-zu-angular-signals-migrieren\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/angular-signals-migration.png\",\"keywords\":[\"Angular\",\"Angular 17\",\"Angular Change Detection\",\"Angular Performance Optimization\",\"Angular Signals\",\"Migration\",\"Optimization\",\"Performance\",\"Reactive Programming\",\"Signals\",\"Tooling\"],\"articleSection\":[\"Angular\",\"Angular 17\",\"Angular Performance Optimization\",\"Angular Signals\",\"Change Detection\",\"Optimization\",\"Performance\",\"Signals\",\"Tooling\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/ganz-einfach-zu-angular-signals-migrieren\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/ganz-einfach-zu-angular-signals-migrieren\\\/\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/ganz-einfach-zu-angular-signals-migrieren\\\/\",\"name\":\"Ganz einfach zu Angular Signals migrieren\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/ganz-einfach-zu-angular-signals-migrieren\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/ganz-einfach-zu-angular-signals-migrieren\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/angular-signals-migration.png\",\"datePublished\":\"2024-09-30T08:00:09+00:00\",\"dateModified\":\"2026-04-09T09:26:24+00:00\",\"description\":\"Erfahre jetzt, wie du deine Inputs ganz einfach zu Angular Signals migrieren kannst und wie dir ngxtension auch bei Outputs helfen kann\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/ganz-einfach-zu-angular-signals-migrieren\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/ganz-einfach-zu-angular-signals-migrieren\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/ganz-einfach-zu-angular-signals-migrieren\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/angular-signals-migration.png\",\"contentUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/angular-signals-migration.png\",\"width\":1200,\"height\":1200,\"caption\":\"Angular Signals Part 4 - Migration\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/ganz-einfach-zu-angular-signals-migrieren\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Angular Signals Teil 4 &#8211; Ganz einfach zu Signals migrieren\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/\",\"name\":\"Web Development tips and tricks - theCodeCampus Blog\",\"description\":\"Tips, tricks, and experiences about developing web and mobile applications with Angular, TypeScript, and Testing.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#organization\",\"name\":\"theCodeCampus\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/TCC-Logo-Bildmarke-quadratisch.jpg\",\"contentUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/TCC-Logo-Bildmarke-quadratisch.jpg\",\"width\":156,\"height\":156,\"caption\":\"theCodeCampus\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/person\\\/be8c4fcd8229783d0e9442dad8764770\",\"name\":\"Marc Dommr\u00f6se\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/cropped-marc-dommroese-tcc-author-96x96.png\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/cropped-marc-dommroese-tcc-author-96x96.png\",\"contentUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/cropped-marc-dommroese-tcc-author-96x96.png\",\"caption\":\"Marc Dommr\u00f6se\"},\"description\":\"My name is Marc. I'm currently studying Computer Science at university, with one of my favorite topics being frontend development.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/marc-dommr\u00f6se-372a88318\\\/\"],\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/author\\\/mdommroese\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ganz einfach zu Angular Signals migrieren","description":"Erfahre jetzt, wie du deine Inputs ganz einfach zu Angular Signals migrieren kannst und wie dir ngxtension auch bei Outputs helfen kann","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/","og_locale":"en_US","og_type":"article","og_title":"Ganz einfach zu Angular Signals migrieren","og_description":"Erfahre jetzt, wie du deine Inputs ganz einfach zu Angular Signals migrieren kannst und wie dir ngxtension auch bei Outputs helfen kann","og_url":"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/","og_site_name":"Web Development tips and tricks - theCodeCampus Blog","article_published_time":"2024-09-30T08:00:09+00:00","article_modified_time":"2026-04-09T09:26:24+00:00","og_image":[{"width":1200,"height":1200,"url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/11\/angular-signals-migration.png","type":"image\/png"}],"author":"Marc Dommr\u00f6se","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Marc Dommr\u00f6se","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/#article","isPartOf":{"@id":"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/"},"author":{"name":"Marc Dommr\u00f6se","@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/person\/be8c4fcd8229783d0e9442dad8764770"},"headline":"Angular Signals Teil 4 &#8211; Ganz einfach zu Signals migrieren","datePublished":"2024-09-30T08:00:09+00:00","dateModified":"2026-04-09T09:26:24+00:00","mainEntityOfPage":{"@id":"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/"},"wordCount":755,"commentCount":0,"publisher":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#organization"},"image":{"@id":"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/#primaryimage"},"thumbnailUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/11\/angular-signals-migration.png","keywords":["Angular","Angular 17","Angular Change Detection","Angular Performance Optimization","Angular Signals","Migration","Optimization","Performance","Reactive Programming","Signals","Tooling"],"articleSection":["Angular","Angular 17","Angular Performance Optimization","Angular Signals","Change Detection","Optimization","Performance","Signals","Tooling"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/","url":"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/","name":"Ganz einfach zu Angular Signals migrieren","isPartOf":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/#primaryimage"},"image":{"@id":"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/#primaryimage"},"thumbnailUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/11\/angular-signals-migration.png","datePublished":"2024-09-30T08:00:09+00:00","dateModified":"2026-04-09T09:26:24+00:00","description":"Erfahre jetzt, wie du deine Inputs ganz einfach zu Angular Signals migrieren kannst und wie dir ngxtension auch bei Outputs helfen kann","breadcrumb":{"@id":"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/#primaryimage","url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/11\/angular-signals-migration.png","contentUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/11\/angular-signals-migration.png","width":1200,"height":1200,"caption":"Angular Signals Part 4 - Migration"},{"@type":"BreadcrumbList","@id":"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.thecodecampus.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Angular Signals Teil 4 &#8211; Ganz einfach zu Signals migrieren"}]},{"@type":"WebSite","@id":"https:\/\/www.thecodecampus.de\/blog\/#website","url":"https:\/\/www.thecodecampus.de\/blog\/","name":"Web Development tips and tricks - theCodeCampus Blog","description":"Tips, tricks, and experiences about developing web and mobile applications with Angular, TypeScript, and Testing.","publisher":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.thecodecampus.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.thecodecampus.de\/blog\/#organization","name":"theCodeCampus","url":"https:\/\/www.thecodecampus.de\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/01\/TCC-Logo-Bildmarke-quadratisch.jpg","contentUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/01\/TCC-Logo-Bildmarke-quadratisch.jpg","width":156,"height":156,"caption":"theCodeCampus"},"image":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/person\/be8c4fcd8229783d0e9442dad8764770","name":"Marc Dommr\u00f6se","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/09\/cropped-marc-dommroese-tcc-author-96x96.png","url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/09\/cropped-marc-dommroese-tcc-author-96x96.png","contentUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/09\/cropped-marc-dommroese-tcc-author-96x96.png","caption":"Marc Dommr\u00f6se"},"description":"My name is Marc. I'm currently studying Computer Science at university, with one of my favorite topics being frontend development.","sameAs":["https:\/\/www.linkedin.com\/in\/marc-dommr\u00f6se-372a88318\/"],"url":"https:\/\/www.thecodecampus.de\/blog\/author\/mdommroese\/"}]}},"_links":{"self":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/3032","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/users\/40"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/comments?post=3032"}],"version-history":[{"count":40,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/3032\/revisions"}],"predecessor-version":[{"id":3712,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/3032\/revisions\/3712"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/media\/3123"}],"wp:attachment":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/media?parent=3032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/categories?post=3032"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/tags?post=3032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}