{"id":2896,"date":"2024-06-28T08:27:22","date_gmt":"2024-06-28T06:27:22","guid":{"rendered":"https:\/\/www.thecodecampus.de\/blog\/?p=2896"},"modified":"2026-04-09T11:25:51","modified_gmt":"2026-04-09T09:25:51","slug":"welche-vorteile-haben-angular-signal-inputs","status":"publish","type":"post","link":"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/","title":{"rendered":"Angular Signals Teil 3 &#8211; Welche Vorteile haben Signal Inputs?"},"content":{"rendered":"<p><em><strong>Go <a href=\"https:\/\/www.thecodecampus.de\/blog\/what-advantages-have-angular-signal-inputs\/\">here<\/a> for the english version of this blog post.<\/strong><\/em><\/p>\n<h2>Steigere die Reaktivit\u00e4t deiner Anwendung mit den Signal Inputs aus Angular 17<\/h2>\n<p>In den ersten beiden Beitr\u00e4gen dieser Artikelreihe, <a href=\"https:\/\/www.thecodecampus.de\/blog\/mit-angular-signals-effiziente-anwendungen-entwickeln\/\">Angular Signals Teil 1 &#8211; How-to Guide f\u00fcr Angular Signals<\/a> und <a href=\"https:\/\/www.thecodecampus.de\/blog\/wie-kombiniert-man-angular-signals-und-rxjs\/\">Angular Signals Teil 2 &#8211; Wie kombiniert man Angular Signals und RxJS<\/a>, haben wir uns angeschaut was Angular Signals sind und wie sie sich mit RxJS kombinieren lassen. Aufbauend auf diesem Wissen, wollen wir diesmal die mit der Angular Version 17 eingef\u00fchrten <strong>Signal Inputs<\/strong> genauer betrachten und herausfinden welche Vorteile sie uns in der reaktiven Programmierung bieten. Signal Inputs sind eine reaktive Alternative zu den traditionellen <code>@Input()<\/code>-Dekoratoren und sollen den Datenaustausch zwischen Child- und Parent-Components vereinfachen. In diesem Blogartikel wird anhand eines Beispiels der klassische <code>@Input()<\/code>-Dekorator mit dem neuen deklarativen Ansatz der Signal Inputs verglichen und auf die Vorteile der Signal Inputs eingegangen.<\/p>\n<h2>Klassischer @Input()-Dekorator<\/h2>\n<p>Bevor wir uns n\u00e4her mit den Signal Inputs besch\u00e4ftigen, wollen wir einen Blick auf den <code>@Input()-<\/code>Dekorator werfen. Der <code>@Input<\/code>-Dekorator in Angular erm\u00f6glicht die \u00dcbergabe von Daten von einer Parent- zu einer Child-Component. Er wird in der Child-Component verwendet, um eine Property als Input zu markieren, die Daten werden dann von der Parent-Component durch Property Binding bereitgestellt. Dies ist ein grundlegender Bestandteil wiederverwendbarer Komponenten und skalierbarer Angular-Anwendungen, der eine klare Trennung der Verantwortlichkeiten und eine einfache Kommunikation zwischen Komponenten sicherstellt. Weitere Informationen zum <code>@Input()<\/code>-Dekorator finden sich in der offiziellen Angular <a href=\"https:\/\/angular.dev\/guide\/components\/inputs\">Dokumentation<\/a>. Wir m\u00f6chten uns das anhand unseres bereits bekannten Beispiels der geraden und ungeraden Zahlen genauer ansehen. Dabei \u00fcbergibt die Parent-Component eine inkrementierbare Zahl an die Child-Component, sobald sich diese \u00e4ndert. In der Child-Component wird dann \u00fcberpr\u00fcft, ob die Zahl gerade oder ungerade ist.<\/p>\n<p><strong>Parent-Component (main.ts)<\/strong><\/p>\n<pre class=\"lang:ts decode:true\" title=\"main.ts\">...\r\n@Component({\r\n  ...\r\n  template: `\r\n    &lt;button (click)=\"increment()\"&gt;Increment&lt;\/button&gt;\r\n    &lt;tcc-input-with-decorator [number]=\"currentNumber\"&gt;&lt;\/tcc-input-with-decorator&gt;\r\n`\r\n})\r\nexport class AppComponent{\r\n  currentNumber:number = 0;\r\n  increment() {\r\n    this.currentNumber++;\r\n  }\r\n}\r\n...<\/pre>\n<p>Die Parent-Component <code>AppComponent<\/code> besitzt die Membervariable <code>currentNumber<\/code>, die durch die Methode <code>increment()<\/code> erh\u00f6ht wird. Diese Methode wird durch das Klicken des Buttons im Template ausgel\u00f6st. Die Variable wird mittels Property Binding an die Child-Component <code>InputWithDecoratorComponent<\/code>\u00a0\u00fcbergeben.<\/p>\n<p><strong>Child-Component (input-with-decorator.component.ts)<\/strong><\/p>\n<pre class=\"lang:default decode:true\" title=\"input-with-decorator.component.ts\">...\r\n@Component({\r\n  selector: 'tcc-input-with-decorator',\r\n  template: `&lt;p&gt;{{ number }} is {{ isEven ? 'Even' : 'Odd' }}&lt;\/p&gt;`,\r\n  ...\r\n})\r\nexport class InputWithDecoratorComponent implements OnChanges {\r\n  @Input() number: number | undefined;\r\n  isEven: boolean | undefined;\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes['number']) {\r\n      this.isEven = changes['number'].currentValue % 2 === 0;\r\n      console.log('Even? ',this.isEven);\r\n    }\r\n  }\r\n}\r\n<\/pre>\n<p>Die Child-Component <code>InputWithDecoratorComponent<\/code>\u00a0empf\u00e4ngt eine Zahl von der Parent-Component \u00fcber den <code>@Input()<\/code>-Dekorator. Die Berechnung, ob es sich bei dieser Zahl um eine gerade oder ungerade Zahl handelt, wird in der Lifecycle Methode <code>ngOnChanges()<\/code> \u00fcberpr\u00fcft. Diese Methode wird automatisch aufgerufen, wenn sich der Eingabewert unseres <code>@Input()<\/code>-Dekorator \u00e4ndert. Anschlie\u00dfend wird im Template angezeigt, ob es sich um eine gerade oder ungerade Zahl handelt.<\/p>\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\/angular-schulungen_frieder_WP_big.png\" media=\"(min-width: 1024px)\" \/><\/picture>\n<picture><source srcset=\"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/04\/angular-schulungen_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\/angular-schulungen_frieder_WP_small.png\" alt=\"Angular Schulungen\" \/><\/picture>\n<\/a><\/p>\n<h2>Signal Inputs mit input()<\/h2>\n<p><a href=\"https:\/\/angular.dev\/guide\/signals\/inputs\">Signal Inputs<\/a> sind eine reaktive Alternative zu den traditionellen <code>@Input()<\/code>-Dekoratoren und sollen den Datenaustausch zwischen Child- und Parent-Component vereinfachen. Sie eignen sich sowohl f\u00fcr Komponenten als auch Direktiven. Die Initialisierung\/Deklaration ist sehr simpel:<\/p>\n<pre class=\"lang:default decode:true \">number = input(0);       \/\/ InputSignal&lt;number&gt;\r\nname = input&lt;string&gt;();  \/\/ InputSignal&lt;string|undefined&gt;<\/pre>\n<p>Der Input kann, wie bei der Variable <code>number<\/code>, mit einem Wert initialisiert werden. Andernfalls wird, wie bei der Variable <code>name<\/code>, automatisch undefined verwendet. Bei diesen Signal Inputs handelt es sich um <strong>optionale<\/strong> Inputs. Die <strong>required<\/strong> Inputs werden im Absatz <a href=\"#optionen\">Optionen<\/a> behandelt.<\/p>\n<p>Die Klasse <code>InputSignal&lt;T&gt;<\/code> erweitetert die <code>Signal&lt;T&gt;<\/code> Klasse und kann dadurch innerhalb des Signal-Kontext verwendet werden. Dadurch k\u00f6nnen wir auf die Methoden <code>effect()<\/code>\u00a0und <code>computed()<\/code> zugreifen.<\/p>\n<pre class=\"lang:js decode:true\" title=\"InputSignal&lt;T&gt;\"> export class InputSignal&lt;T&gt; extends Signal&lt;T&gt; { ... }<\/pre>\n<h2>@Input() durch Signal Input ersetzen<\/h2>\n<p>Nun wollen wir das vorherige Beispiel anhand von Signal Inputs darstellen. Zun\u00e4chst betrachten wir wieder die Parent-Component. Erfreulicherweise muss nur der Selektor der Komponente angepasst werden. Die Werte k\u00f6nnen wie bisher per Property Binding im Template an die Child-Component \u00fcbergeben werden.<\/p>\n<p><strong>Parent-Component (app.component.ts)<\/strong><\/p>\n<pre class=\"lang:default mark:6 decode:true\" title=\"app.component.ts\">...\r\n@Component({\r\n  ...\r\n  template: `\r\n    ...\r\n    &lt;tcc-signal-input [number]=\"currentNumber\"&gt;&lt;\/tcc-signal-input&gt;`,\r\n})\r\nexport class AppComponent{\r\n  ...\r\n}\r\n<\/pre>\n<h3>computed() statt ngOnChanges()<\/h3>\n<p>Bei der Child-Component gibt es ein paar mehr \u00c4nderungen:<br \/>\nDie Membervariable <code>number<\/code> wurde zu einem Signal Input umgewandelt. Anstatt auf Ver\u00e4nderungen durch die <code>ngOnChanges()<\/code>-Lifecycle Methode zu reagieren, nutzen wir die <code>computed()<\/code>-Funktion. Die Funktion <code>computed()<\/code> ist nicht spezifisch f\u00fcr Signal Inputs, sondern kann, wie zuvor erw\u00e4hnt, f\u00fcr jede Art von Signal verwendet werden. In unseren vorherigen Artikeln haben wir beschrieben, dass es ich dabei um ein readonly Signal handelt, das seinen Wert aus anderen Signals ableitet. Die Funktion wird ausgef\u00fchrt, sobald sich ein Signal innerhalb der Callback-Funktion \u00e4ndert. In unserem Fall also, wenn <code>number<\/code> durch die Parent-Component inkrementiert wird.<br \/>\nWichtig zu beachten ist, dass auf den Wert eines Signal (Inputs) immer mit einem Funktionsaufruf <code>()<\/code> zugegriffen wird, ansonsten wird ein Error ausgegeben.<\/p>\n<p><strong>Child-Component (signal-input.component.ts)<\/strong><\/p>\n<pre class=\"lang:default decode:true \" title=\"child-signal-input.ts\">...\r\n@Component({\r\n  ...\r\n  selector: 'tcc-signal-input',\r\n  template: `&lt;p&gt;{{ number() }} is {{ isEven() ? 'Even' : 'Odd' }}&lt;\/p&gt;`,\r\n})\r\nexport class SignalInputComponent {\r\n  number = input&lt;number&gt;(0);\r\n\r\n  isEven = computed(() =&gt; this.number() % 2 === 0);\r\n\r\n  sideEffect = effect(() =&gt; {\r\n  console.log('Even? ', this.isEven());\r\n  });\r\n\r\n}<\/pre>\n<p>Die Funktion <code>effect()<\/code> erm\u00f6glicht es uns festzulegen, welche Aktionen ausgef\u00fchrt werden sollen, wenn sich der Wert eines Signals \u00e4ndert oder welche Nebeneffekte auftreten sollen. In unserem Beispiel verwenden wir eine einfache <code>console.log()<\/code>-Anweisung, die ausgef\u00fchrt wird, wenn sich das Signal <code>isEven()<\/code> \u00e4ndert. Diese Funktion kann besonders n\u00fctzlich z.B. in Strukturdirektiven verwendet werden, um das Verhalten von DOM-Elementen in Angular basierend auf Bedingungen oder Ereignissen anzupassen oder zu erweitern. Dadurch k\u00f6nnen DOM-Elemente je nach Bedarf hinzugef\u00fcgt oder entfernt werden.<\/p>\n<h2 id=\"optionen\">Optionen f\u00fcr Signal Inputs<\/h2>\n<p>Signal Inputs besitzen die gleichen Optionen wie <code>@Input()<\/code>. Wir werden nun darauf eingehen wie du diese Optionen bei Signal Inputs verwenden kannst.<\/p>\n<h3>required<\/h3>\n<p>Um ein Signal Input als erforderlich zu kennzeichnen, k\u00f6nnen wir <a href=\"https:\/\/angular.dev\/guide\/signals\/inputs\">required<\/a> verwenden:<\/p>\n<pre class=\"lang:default decode:true\" title=\"Option: required\">number = input.required&lt;number&gt;();<\/pre>\n<p>Ohne diese Option ist der Input optional und muss nicht von der Parent-Component \u00fcbergeben werden. Ist der Signal Input required, erhalten wir einen Error, wenn wir im Parent-Component keinen Wert mitgeben.<\/p>\n<h3>alias<\/h3>\n<p>Auch einen <a href=\"https:\/\/angular.dev\/guide\/signals\/inputs#aliasing-an-input\">alias<\/a>\u00a0k\u00f6nnen wir f\u00fcr unser Signal Input bestimmen:<\/p>\n<pre class=\"lang:default decode:true\" title=\"Option: alias\">number = input&lt;number&gt;({alias:\"counter\");<\/pre>\n<p>Nun k\u00f6nnen wir unsere Daten durch Property Binding mit der <code>counter<\/code>-Property \u00fcbergeben:<\/p>\n<pre class=\"lang:default decode:true\" title=\"Counter Property\">&lt;tcc-signal-input [counter]=\"currentNumber\"&gt;&lt;\/tcc-signal-input&gt;`,\r\n<\/pre>\n<h3>transform()<\/h3>\n<p>Mit der Funktion <a href=\"https:\/\/angular.dev\/guide\/signals\/inputs#value-transforms\">transform()<\/a> kann der Wert der Input Property transformiert werden, bevor er \u00fcber das Signal Input ausgegeben wird. Im folgenden Beispiel wird der Input-Wert mit 2 multipliziert, bevor er \u00fcber das Signal Input ausgegeben wird:<\/p>\n<pre class=\"lang:js decode:true\" title=\"Option: transform\"> number = input(0, {\r\n    transform: (value: number): number =&gt; {\r\n      return value * 2;\r\n    }\r\n  });<\/pre>\n<h2>Was sind nun die Vorteile von Signal Inputs?<\/h2>\n<p>Signal Inputs bieten eine direkte und reaktive Alternative zu <code>@Input()<\/code> und damit zahlreiche Vorteile. Der Hauptvorteil zeigt sich besonders, wenn Komponenten bereits in einem reaktiven Stil mit Signals entwickelt wurden. Mit Signal Inputs k\u00f6nnen nun auch Inputs verwendet werden, die wiederum Signals sind. Dadurch k\u00f6nnen wir den Funktionsumfang der Signals voll ausnutzen, indem wir <code>computed()<\/code> und <code>effect()<\/code> verwenden, um auf Wertver\u00e4nderungen zu reagieren, anstatt beispielsweise <code>ngOnChanges<\/code> oder Setter zu verwenden. Ein weiterer Vorteil von Signal Inputs, auf den wir im Beispiel nicht explizit eingegangen sind, ist, dass sie automatisch OnPush Komponenten als dirty markieren, was eine effizientere Aktualisierung der UI erm\u00f6glicht. Zudem bieten Signal Inputs die gleichen Optionen wie <code>@Input()<\/code>, einschlie\u00dflich der M\u00f6glichkeiten, Inputs als <code>required<\/code> zu kennzeichnen, <code>alias<\/code> zu verwenden und <code>transform<\/code> anzuwenden. Die gewohnten Verwendungsm\u00f6glichkeiten bleiben also erhalten.<\/p>\n<h2>Erfahrung ist der beste Lehrer: Hands-On mit Signal Inputs<\/h2>\n<p>Bist Du bereit, die Theorie in die Praxis umzusetzen? In diesem interaktiven StackBlitz-Beispiel befindet sich die vorgestellte Beispielanwendung, die die Grundkonzepte von Signal Inputs aufgreift und alle vorgestellten Beispiele und Funktionen beinhaltet. Tauche ein und experimentiere, um Signals und Signal Inputs in Aktion zu erleben!<\/p>\n<p><iframe height=\"400\" style=\"width: 100%;\" src=\"https:\/\/stackblitz.com\/edit\/stackblitz-starters-gcugmg?embed=1&amp;file=src%2Fmain.ts\" scrolling=\"no\"><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<h2>Wie es weiter geht<\/h2>\n<p>Unsere Reise mit Angular Signals ist noch nicht vorbei. Im <a href=\"https:\/\/www.thecodecampus.de\/blog\/ganz-einfach-zu-angular-signals-migrieren\/\">n\u00e4chsten Artikel<\/a> dieser Reihe wollen wir euch ngxtension und zwei Erweiterungen vorstellen, die uns in der Migration von <code>@Input<\/code> zu Signal Inputs und <code>@Output<\/code> sehr geholfen haben und mit der wir effizient und strukturiert auf das neue Signal-basierte Paradigma migrieren konnten.<\/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\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In den ersten beiden Beitr\u00e4gen dieser Artikelreihe, Angular Signals Teil 1 &#8211; How-to Guide f\u00fcr Angular Signals und Angular Signals Teil 2 &#8211; Wie kombiniert man Angular Signals und RxJS, haben wir uns angeschaut was Angular Signals sind und wie sie sich mit RxJS kombinieren lassen. Aufbauend auf diesem Wissen, wollen wir diesmal die mit der Angular Version 17 eingef\u00fchrten Signal Inputs genauer betrachten und herausfinden welche Vorteile sie uns in der reaktiven Programmierung bieten. Signal Inputs sind eine reaktive Alternative zu [&#8230;]<\/p>\n","protected":false},"author":39,"featured_media":3122,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[73,164,163,168,169,151,162],"tags":[112,170,172,179,171,175],"class_list":["post-2896","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","tag-angular","tag-angular-17","tag-angular-change-detection","tag-angular-signal-inputs","tag-angular-signals","tag-reactive-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Welche Vorteile haben die Signal Inputs von Angular<\/title>\n<meta name=\"description\" content=\"Angular 17: Entwickle effizientere Apps mit reaktiven Komponenten durch Signal Inputs. Erfahre jetzt welche Vorteile die Signal Inputs von Angular haben!\" \/>\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\/welche-vorteile-haben-angular-signal-inputs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Welche Vorteile haben die Signal Inputs von Angular\" \/>\n<meta property=\"og:description\" content=\"Angular 17: Entwickle effizientere Apps mit reaktiven Komponenten durch Signal Inputs. Erfahre jetzt welche Vorteile die Signal Inputs von Angular haben!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Development tips and tricks - theCodeCampus Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-28T06:27:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-09T09:25:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/11\/Angular-signal-inputs.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=\"Cornelius Rost\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Cornelius Rost\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/welche-vorteile-haben-angular-signal-inputs\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/welche-vorteile-haben-angular-signal-inputs\\\/\"},\"author\":{\"name\":\"Cornelius Rost\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/person\\\/ab388f18048c8230505aa5012825ca69\"},\"headline\":\"Angular Signals Teil 3 &#8211; Welche Vorteile haben Signal Inputs?\",\"datePublished\":\"2024-06-28T06:27:22+00:00\",\"dateModified\":\"2026-04-09T09:25:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/welche-vorteile-haben-angular-signal-inputs\\\/\"},\"wordCount\":1145,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/welche-vorteile-haben-angular-signal-inputs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Angular-signal-inputs.png\",\"keywords\":[\"Angular\",\"Angular 17\",\"Angular Change Detection\",\"Angular Signal Inputs\",\"Angular Signals\",\"Reactive Programming\"],\"articleSection\":[\"Angular\",\"Angular 17\",\"Angular Performance Optimization\",\"Angular Signals\",\"Change Detection\",\"Optimization\",\"Performance\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/welche-vorteile-haben-angular-signal-inputs\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/welche-vorteile-haben-angular-signal-inputs\\\/\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/welche-vorteile-haben-angular-signal-inputs\\\/\",\"name\":\"Welche Vorteile haben die Signal Inputs von Angular\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/welche-vorteile-haben-angular-signal-inputs\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/welche-vorteile-haben-angular-signal-inputs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Angular-signal-inputs.png\",\"datePublished\":\"2024-06-28T06:27:22+00:00\",\"dateModified\":\"2026-04-09T09:25:51+00:00\",\"description\":\"Angular 17: Entwickle effizientere Apps mit reaktiven Komponenten durch Signal Inputs. Erfahre jetzt welche Vorteile die Signal Inputs von Angular haben!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/welche-vorteile-haben-angular-signal-inputs\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/welche-vorteile-haben-angular-signal-inputs\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/welche-vorteile-haben-angular-signal-inputs\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Angular-signal-inputs.png\",\"contentUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Angular-signal-inputs.png\",\"width\":1200,\"height\":1200,\"caption\":\"Angular Part 3 - Signal Inputs\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/welche-vorteile-haben-angular-signal-inputs\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Angular Signals Teil 3 &#8211; Welche Vorteile haben Signal Inputs?\"}]},{\"@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\\\/ab388f18048c8230505aa5012825ca69\",\"name\":\"Cornelius Rost\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/cropped-cornelius-rost-tcc-author-96x96.png\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/cropped-cornelius-rost-tcc-author-96x96.png\",\"contentUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/cropped-cornelius-rost-tcc-author-96x96.png\",\"caption\":\"Cornelius Rost\"},\"description\":\"I am Cornelius, a working student in web development at W11K, where I work on web projects and develop practical solutions. I am currently studying for a Master's degree at the University of Stuttgart and am deepening my knowledge of software engineering.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/cornelius-rost-1b81a22ab\"],\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/author\\\/crost\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Welche Vorteile haben die Signal Inputs von Angular","description":"Angular 17: Entwickle effizientere Apps mit reaktiven Komponenten durch Signal Inputs. Erfahre jetzt welche Vorteile die Signal Inputs von Angular haben!","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\/welche-vorteile-haben-angular-signal-inputs\/","og_locale":"en_US","og_type":"article","og_title":"Welche Vorteile haben die Signal Inputs von Angular","og_description":"Angular 17: Entwickle effizientere Apps mit reaktiven Komponenten durch Signal Inputs. Erfahre jetzt welche Vorteile die Signal Inputs von Angular haben!","og_url":"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/","og_site_name":"Web Development tips and tricks - theCodeCampus Blog","article_published_time":"2024-06-28T06:27:22+00:00","article_modified_time":"2026-04-09T09:25:51+00:00","og_image":[{"width":1200,"height":1200,"url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/11\/Angular-signal-inputs.png","type":"image\/png"}],"author":"Cornelius Rost","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Cornelius Rost","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/#article","isPartOf":{"@id":"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/"},"author":{"name":"Cornelius Rost","@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/person\/ab388f18048c8230505aa5012825ca69"},"headline":"Angular Signals Teil 3 &#8211; Welche Vorteile haben Signal Inputs?","datePublished":"2024-06-28T06:27:22+00:00","dateModified":"2026-04-09T09:25:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/"},"wordCount":1145,"commentCount":0,"publisher":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#organization"},"image":{"@id":"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/11\/Angular-signal-inputs.png","keywords":["Angular","Angular 17","Angular Change Detection","Angular Signal Inputs","Angular Signals","Reactive Programming"],"articleSection":["Angular","Angular 17","Angular Performance Optimization","Angular Signals","Change Detection","Optimization","Performance"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/","url":"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/","name":"Welche Vorteile haben die Signal Inputs von Angular","isPartOf":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/#primaryimage"},"image":{"@id":"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/11\/Angular-signal-inputs.png","datePublished":"2024-06-28T06:27:22+00:00","dateModified":"2026-04-09T09:25:51+00:00","description":"Angular 17: Entwickle effizientere Apps mit reaktiven Komponenten durch Signal Inputs. Erfahre jetzt welche Vorteile die Signal Inputs von Angular haben!","breadcrumb":{"@id":"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/#primaryimage","url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/11\/Angular-signal-inputs.png","contentUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/11\/Angular-signal-inputs.png","width":1200,"height":1200,"caption":"Angular Part 3 - Signal Inputs"},{"@type":"BreadcrumbList","@id":"https:\/\/www.thecodecampus.de\/blog\/welche-vorteile-haben-angular-signal-inputs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.thecodecampus.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Angular Signals Teil 3 &#8211; Welche Vorteile haben Signal Inputs?"}]},{"@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\/ab388f18048c8230505aa5012825ca69","name":"Cornelius Rost","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/10\/cropped-cornelius-rost-tcc-author-96x96.png","url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/10\/cropped-cornelius-rost-tcc-author-96x96.png","contentUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2024\/10\/cropped-cornelius-rost-tcc-author-96x96.png","caption":"Cornelius Rost"},"description":"I am Cornelius, a working student in web development at W11K, where I work on web projects and develop practical solutions. I am currently studying for a Master's degree at the University of Stuttgart and am deepening my knowledge of software engineering.","sameAs":["https:\/\/www.linkedin.com\/in\/cornelius-rost-1b81a22ab"],"url":"https:\/\/www.thecodecampus.de\/blog\/author\/crost\/"}]}},"_links":{"self":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/2896","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\/39"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/comments?post=2896"}],"version-history":[{"count":64,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/2896\/revisions"}],"predecessor-version":[{"id":3711,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/2896\/revisions\/3711"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/media\/3122"}],"wp:attachment":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/media?parent=2896"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/categories?post=2896"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/tags?post=2896"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}