{"id":3238,"date":"2025-04-15T07:56:37","date_gmt":"2025-04-15T05:56:37","guid":{"rendered":"https:\/\/www.thecodecampus.de\/blog\/?p=3238"},"modified":"2026-04-09T11:28:14","modified_gmt":"2026-04-09T09:28:14","slug":"was-sind-linked-signals","status":"publish","type":"post","link":"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/","title":{"rendered":"Angular Signals Teil 6 &#8211; Was sind Linked Signals?"},"content":{"rendered":"<p><em><strong>Click <a href=\"https:\/\/www.thecodecampus.de\/blog\/what-are-linked-signals\/\">here<\/a> for the english version of this blog post.<\/strong><\/em><\/p>\n<h2>Erweitere die Funktionalit\u00e4t Deiner Signals mit Linked Signals<\/h2>\n<p>Mit Angular 19 wurde nun ein neues Feature eingef\u00fchrt: <strong>Linked Signals<\/strong>. Wenn Du Dich fragst: Was sind Linked Signals? Und was bringt es mir sie zu nutzen? Bist Du hier genau richtig. Wir erkl\u00e4ren Dir wie Linked Signals funktionieren und wie Du mit ihnen die Funktionalit\u00e4t Deiner Signals erweitern kannst. Falls Du einen kurzen Refresh zu Angular Signals willst, haben wir noch einen Artikel der genau richtig ist. In unserem <a href=\"https:\/\/www.thecodecampus.de\/blog\/angular-guide-signals-und-hot-topics\/\">Angular Guide<\/a> geben wir Dir einen \u00dcberblick \u00fcber alle Artikel in unserer Angular Signals Reihe, angefangen mit: Was sind eigentlich Signals und welche Vorteile bringen Sie mit?<\/p>\n<p>Was sind also Linked Signals: Sie \u00e4hneln grunds\u00e4tzlich den mit <code data-start=\"17\" data-end=\"27\">computed()<\/code> erstellten <strong>readonly Signals<\/strong>, mit einem entscheidenden Unterschied \u2013 Linked Signals sind <strong>writeable Signals<\/strong>, das hei\u00dft sie k\u00f6nnen manuell ge\u00e4ndert werden, wie <code data-start=\"17\" data-end=\"27\">signal()<\/code>. Das bedeutet, dass ihr Wert nicht ausschlie\u00dflich von dem Signal in der Callback-Funktion abh\u00e4ngt, sondern auch gezielt angepasst werden kann. Im Folgenden schauen wir uns an wie man Linked Signals erstellt und welches Problem sie beseitigen.<\/p>\n<h2>Das Problem mit readonly Signals<\/h2>\n<p class=\"\" data-start=\"0\" data-end=\"158\">Bevor wir uns mit Linked Signals befassen, m\u00f6chten wir zun\u00e4chst das zugrunde liegende Problem betrachten. Dazu erstellen wir ein kleines Beispiel und wenden Signals so an, wie wir sie bereits kennengelernt haben.<\/p>\n<p class=\"\" data-start=\"0\" data-end=\"158\">In unserem Szenario geht es um Restaurantinformationen mit zwei zentralen Funktionen:<\/p>\n<ol data-start=\"249\" data-end=\"390\" data-is-last-node=\"\" data-is-only-node=\"\">\n<li class=\"\" data-start=\"249\" data-end=\"321\">\n<p class=\"\" data-start=\"252\" data-end=\"321\">Dem Nutzer werden automatisch die Details des bestbewerteten Restaurant angezeigt.<\/p>\n<\/li>\n<li class=\"\" data-start=\"322\" data-end=\"390\">\n<p class=\"\" data-start=\"325\" data-end=\"390\">Der Nutzer kann ein Restaurant aus einer Liste manuell ausw\u00e4hlen.<\/p>\n<\/li>\n<\/ol>\n<h3>Was wir bisher \u00fcber Signals wissen<\/h3>\n<p>K\u00fcmmern wir uns zun\u00e4chst einmal um die erste Anforderung. Wir erstellen ein <code data-start=\"24\" data-end=\"32\">signal()<\/code> namens <code data-start=\"40\" data-end=\"53\">restaurants<\/code>, das eine Liste von Restaurant-Objekten enth\u00e4lt. Dann wird ein <code data-start=\"126\" data-end=\"143\">computed()<\/code>-Signal namens <code data-start=\"151\" data-end=\"171\">selectedRestaurant<\/code> erstellt, welches das Restaurant mit der h\u00f6chsten Bewertung aus der <code data-start=\"254\" data-end=\"267\">restaurants<\/code>-Liste zur\u00fcckgibt. Zur Erinnerung: Wenn sich das <code data-start=\"30\" data-end=\"43\">restaurants<\/code>-Signal durch <code data-start=\"57\" data-end=\"64\">set()<\/code> oder <code data-start=\"70\" data-end=\"80\">update()<\/code> \u00e4ndert, wird die Callback-Funktion des abh\u00e4ngigen Signals (<code data-start=\"139\" data-end=\"159\">selectedRestaurant<\/code>) automatisch ausgef\u00fchrt und das bestbewertete Restaurant wird ermittelt.<\/p>\n<pre class=\"lang:ts decode:true\">import { Component, computed, Signal, signal } from '@angular\/core';\r\n\r\n@Component({\r\n...\r\n  template: `\r\n    &lt;h3&gt;All restaurants:&lt;\/h3&gt;\r\n    @for (restaurant of this.restaurants(); track restaurant) {\r\n      &lt;li&gt;\r\n      Name: {{restaurant.name}} Rating: {{restaurant.rating}}\r\n      &lt;\/li&gt;\r\n    }\r\n    &lt;br&gt;\r\n    &lt;h3&gt;Restaurant details:&lt;\/h3&gt;\r\n    &lt;div&gt;Name: {{selectedRestaurant().name}} Rating: {{selectedRestaurant().rating}}&lt;\/div&gt;\r\n    &lt;div&gt;Address: {{selectedRestaurant().address}}&lt;\/div&gt;\r\n`,\r\n\r\n}) \r\n\r\nexport class RestaurantSignalsComponent {\r\n\r\n  \/\/ Create Restaurant Signal\r\n  restaurants: Signal&lt;Restaurant[]&gt; = signal([\r\n    { name: 'Pizza Paradiso', rating: 2.0, address: '123 Pizza Street, Rome' },\r\n    { name: 'Sushi World', rating: 4.9, address: '456 Sushi Lane, Tokyo' },\r\n    { name: 'Pasta Palace', rating: 3.0, address: '789 Pasta Avenue, Florence' },\r\n  ]);\r\n\r\n  \/\/ Create Computed Signal\r\n  selectedRestaurant = computed(() =&gt; {\r\n    return this.restaurants().sort((a, b) =&gt; b.rating - a.rating)[0];\r\n  });\r\n}<\/pre>\n<p>Wir m\u00f6chten nun die zweite Anforderung umsetzen, damit der Nutzer ein Restaurant beispielsweise per Klick-Event manuell ausw\u00e4hlen kann, anstatt nur automatisch das bestbewertete Restaurant angezeigt zu bekommen. Eine naheliegende L\u00f6sung w\u00e4re, <code data-start=\"243\" data-end=\"263\">selectedRestaurant<\/code> mit <code data-start=\"268\" data-end=\"275\">set()<\/code> oder <code data-start=\"281\" data-end=\"291\">update()<\/code> zu ver\u00e4ndern. Das ist jedoch <strong>nicht m\u00f6glich<\/strong>, da ein <code data-start=\"343\" data-end=\"355\">computed()<\/code>-Signal, wie anfangs erw\u00e4hnt, <strong data-start=\"363\" data-end=\"394\">readonly <\/strong>ist und sich ausschlie\u00dflich dann aktualisiert, wenn sich seine abh\u00e4ngigen Signale \u00e4ndern. Daher w\u00fcrde der folgende Code nicht wie gew\u00fcnscht funktionieren:<\/p>\n<pre class=\"lang:default decode:true \">...\r\n@Component({...})\r\nexport class RestaurantSignalsComponent {\r\n  ...\r\n  \/\/ Create Computed Signal\r\n  selectedRestaurant = computed(() =&gt; {\r\n    return this.restaurants().sort((a, b) =&gt; b.rating - a.rating)[0];\r\n  });\r\n\r\n  \/\/ Computed Signal: Will not work\r\n  selectRestaurantOnList(restaurant: any){\r\n    this.selectedRestaurant.set(restaurant) \/\/ X ERROR\r\n  }\r\n\r\n}\r\n<\/pre>\n<p>Um <code data-start=\"3\" data-end=\"15\">computed()<\/code> mit einer manuellen Auswahl zu kombinieren, ben\u00f6tigen wir ein zus\u00e4tzliches <strong>writeable<\/strong> Signal, das den vom Nutzer gew\u00e4hlten Wert speichert. Da <code data-start=\"160\" data-end=\"172\">computed()<\/code> nur <strong>readonly<\/strong> ist, l\u00e4sst sich der Wert nicht direkt setzen. Stattdessen kann ein weiteres <code data-start=\"260\" data-end=\"270\">signal()<\/code> oder ein <code data-start=\"280\" data-end=\"290\">effect()<\/code> verwendet werden, das auf \u00c4nderungen im <code data-start=\"331\" data-end=\"344\">restaurants<\/code>-Signal reagiert und sicherstellt, dass das ausgew\u00e4hlte Restaurant nur dann automatisch gesetzt wird, wenn der Nutzer noch keine eigene Auswahl getroffen hat. Dieser imperativer Ansatz ist umst\u00e4ndlich, da wir explizit steuern m\u00fcssen, wann und wie das ausgew\u00e4hlte Restaurant aktualisiert wird, anstatt dies rein deklarativ zu l\u00f6sen. Genau hier bieten <strong>Linked Signals<\/strong> eine viel elegantere Alternative.<\/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\/weiter-entwickeln_frieder_WP_big.png\" media=\"(min-width: 1024px)\" \/><\/picture> <picture><source srcset=\"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/04\/weiter-entwickeln_frieder_WP_medium.png\" media=\"(min-width: 600px)\" \/><\/picture> <picture><img decoding=\"async\" class=\"alignnone size-full wp-image-38\" src=\"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/04\/weiter-entwickeln_frieder_WP_small.png\" alt=\"Angular Schulungen\" \/><\/picture> <\/a><\/p>\n<h2>Die L\u00f6sung: Linked Signals erstellen<\/h2>\n<p data-pm-slice=\"1 1 []\">Wir m\u00f6chten unser Beispiel nun mit Linked Signals umsetzen und zeigen, wie viel einfacher sich die Anforderungen damit realisieren lassen. Ein <code data-start=\"143\" data-end=\"159\">linkedSignal()<\/code> kombiniert\u00a0 <code data-start=\"188\" data-end=\"200\">computed()<\/code> und <code data-start=\"205\" data-end=\"215\">signal()<\/code>, indem es berechnete Werte automatisch aktualisiert, w\u00e4hrend sie gleichzeitig manuell \u00fcberschrieben werden k\u00f6nnen. Das bedeutet, dass sie <strong>writeable<\/strong> sind, sodass der Benutzer den Wert von <code data-start=\"404\" data-end=\"424\">selectedRestaurant<\/code> \u00fcber <code data-start=\"430\" data-end=\"437\">set()<\/code> oder <code data-start=\"443\" data-end=\"453\">update()<\/code> nach Belieben anpassen kann.<\/p>\n<p data-pm-slice=\"1 1 []\">Ein Linked Signal kann ganz einfach mit der Funktion <code>linkedSignal()<\/code> erzeugt werden.<br \/>\nAusgew\u00e4hlte Restaurants werden \u00fcber die <code data-start=\"430\" data-end=\"437\">set()<\/code>-Funktion gesetzt.<\/p>\n<pre class=\"lang:ts decode:true\">_import { linkedSignal, signal } from '@angular\/core';\r\n@Component({...})\r\nexport class RestaurantLinkedSignalsComponent {\r\n\r\n  restaurants = signal([\r\n    { name: 'Pizza Paradiso', rating: 2.0, address: '123 Pizza Street, Rome'},\r\n    { name: 'Sushi World', rating: 4.9, address: '456 Sushi Lane, Tokyo'},\r\n    { name: 'Pasta Palace',rating: 3.0, address: '789 Pasta Avenue, Florence'},\r\n  ]);\r\n\r\n  \/\/ Create Linked Signal\r\n  selectedRestaurant = linkedSignal(() =&gt; {\r\n    return this.restaurants().sort((a, b) =&gt; b.rating - a.rating)[0];\r\n  })\r\n\r\n  \/\/ Manual Selection\r\n  selectRestaurantOnList(restaurant: Restaurant) {\r\n    this.selectedRestaurant.set(restaurant);\r\n  }\r\n\r\n}<\/pre>\n<h3>Alternative Erstellung<\/h3>\n<p>Zur Erzeugung kann auch ein objektbasierten Ansatz verwendet werden. Dabei werden die Quelle (<code>Source<\/code>) und die Berechnung (<code>Computation<\/code>) explizit angegeben. Diese Syntax ist flexibler und eignet sich f\u00fcr komplexe Anwendungsf\u00e4lle.<\/p>\n<pre class=\"lang:ts decode:true\">...\r\nselectedRestaurant = linkedSignal({\r\n  source: this.restaurants,\r\n  computation: () =&gt; {\r\n    return this.restaurants().sort((a, b) =&gt; b.rating - a.rating)[0];\r\n  }\r\n});\r\n<\/pre>\n<h2>Fazit<\/h2>\n<p data-pm-slice=\"1 1 []\"><strong>Linked Signals<\/strong> schlie\u00dfen eine L\u00fccke zwischen readonly <code data-start=\"170\" data-end=\"182\">computed()<\/code>-Signals und normalen writeable <code data-start=\"170\" data-end=\"182\">signal()<\/code>-Signals. Sie erm\u00f6glichen es, berechnete Werte <strong>automatisch zu aktualisieren<\/strong>, w\u00e4hrend sie gleichzeitig <strong>manuell \u00fcberschrieben<\/strong> werden k\u00f6nnen.<\/p>\n<ul>\n<li data-pm-slice=\"1 1 []\"><code data-start=\"175\" data-end=\"187\">signal()<\/code>: Ein einfaches Signal, das einen Wert speichert und sowohl gelesen als auch ver\u00e4ndert werden kann (<strong>writetable<\/strong>).<\/li>\n<li data-pm-slice=\"1 1 []\"><code data-start=\"175\" data-end=\"187\">computed()<\/code>: Ein lesbares Signal, das automatisch neu berechnet wird, wenn sich abh\u00e4ngige Signals \u00e4ndern, aber nicht direkt ver\u00e4ndert werden kann (<strong>readonly<\/strong>).<\/li>\n<li data-pm-slice=\"1 1 []\"><code data-start=\"175\" data-end=\"187\">linkedSignal()<\/code>: Ein Signal, das automatisch neu berechnet wird, wenn sich abh\u00e4ngige Signals \u00e4ndern, und welches auch manuell ge\u00e4ndert werden kann (<strong>writeable<\/strong>).<\/li>\n<\/ul>\n<h2>Erfahrung ist der beste Lehrer: Hands-On mit Linked Signals<\/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 Linked Signals aufgreift und die vorgestellten Beispiele und Funktionen beinhaltet.<\/p>\n<p><iframe height=\"400\" style=\"width: 100%;\" src=\"https:\/\/stackblitz.com\/edit\/stackblitz-starters-sxc2s5fy?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>Was kommt als n\u00e4chstes?<\/h2>\n<p>Neben den Linked Signals wurde mit Angular 19 auch die <strong data-start=\"36\" data-end=\"48\">Resource API<\/strong> experimentell eingef\u00fchrt, um asynchrone Daten nahtlos in signalbasierte Anwendungen zu integrieren. In unserem <a href=\"https:\/\/www.thecodecampus.de\/blog\/reactive-apis-in-angular-resource-api-teil-1\/\">n\u00e4chsten Artikel<\/a> stellen wir dir die Resource API und die Funktionen <code>resource()<\/code> und <code>rxResource()<\/code> vor.<\/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>Mit Angular 19 wurde nun ein neues Feature eingef\u00fchrt: Linked Signals. Wenn Du Dich fragst: Was sind Linked Signals? Und was bringt es mir sie zu nutzen? Bist Du hier genau richtig. Wir erkl\u00e4ren Dir wie Linked Signals funktionieren und wie Du mit ihnen die Funktionalit\u00e4t Deiner Signals erweitern kannst. Falls [&#8230;]<\/p>\n","protected":false},"author":39,"featured_media":3493,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[73,185,163,168,169,189,167],"tags":[112,187,172,188,181,171],"class_list":["post-3238","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-angular","category-angular-19","category-angular-performance-optimization","category-angular-signals","category-change-detection","category-linked-signals","category-signals","tag-angular","tag-angular-19","tag-angular-change-detection","tag-angular-linked-signals","tag-angular-performance-optimization","tag-angular-signals"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Was sind Linked Signals?<\/title>\n<meta name=\"description\" content=\"Fragst Du Dich seit Angular 19 auch: Was sind Linked Signals? Wir haben die Antwort und zeigen Dir wie Du sie optimal nutzen kannst.\" \/>\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\/was-sind-linked-signals\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Was sind Linked Signals?\" \/>\n<meta property=\"og:description\" content=\"Fragst Du Dich seit Angular 19 auch: Was sind Linked Signals? Wir haben die Antwort und zeigen Dir wie Du sie optimal nutzen kannst.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Development tips and tricks - theCodeCampus Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-15T05:56:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-09T09:28:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/05\/angular-linked-signals.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=\"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\\\/was-sind-linked-signals\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/was-sind-linked-signals\\\/\"},\"author\":{\"name\":\"Cornelius Rost\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#\\\/schema\\\/person\\\/ab388f18048c8230505aa5012825ca69\"},\"headline\":\"Angular Signals Teil 6 &#8211; Was sind Linked Signals?\",\"datePublished\":\"2025-04-15T05:56:37+00:00\",\"dateModified\":\"2026-04-09T09:28:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/was-sind-linked-signals\\\/\"},\"wordCount\":827,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/was-sind-linked-signals\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/angular-linked-signals.png\",\"keywords\":[\"Angular\",\"Angular 19\",\"Angular Change Detection\",\"Angular Linked Signals\",\"Angular Performance Optimization\",\"Angular Signals\"],\"articleSection\":[\"Angular\",\"Angular 19\",\"Angular Performance Optimization\",\"Angular Signals\",\"Change Detection\",\"Linked Signals\",\"Signals\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/was-sind-linked-signals\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/was-sind-linked-signals\\\/\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/was-sind-linked-signals\\\/\",\"name\":\"Was sind Linked Signals?\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/was-sind-linked-signals\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/was-sind-linked-signals\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/angular-linked-signals.png\",\"datePublished\":\"2025-04-15T05:56:37+00:00\",\"dateModified\":\"2026-04-09T09:28:14+00:00\",\"description\":\"Fragst Du Dich seit Angular 19 auch: Was sind Linked Signals? Wir haben die Antwort und zeigen Dir wie Du sie optimal nutzen kannst.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/was-sind-linked-signals\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/was-sind-linked-signals\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/was-sind-linked-signals\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/angular-linked-signals.png\",\"contentUrl\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/angular-linked-signals.png\",\"width\":1200,\"height\":1200,\"caption\":\"Angular Signals Part 6 - Linked Signals\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/was-sind-linked-signals\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.thecodecampus.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Angular Signals Teil 6 &#8211; Was sind Linked Signals?\"}]},{\"@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":"Was sind Linked Signals?","description":"Fragst Du Dich seit Angular 19 auch: Was sind Linked Signals? Wir haben die Antwort und zeigen Dir wie Du sie optimal nutzen kannst.","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\/was-sind-linked-signals\/","og_locale":"en_US","og_type":"article","og_title":"Was sind Linked Signals?","og_description":"Fragst Du Dich seit Angular 19 auch: Was sind Linked Signals? Wir haben die Antwort und zeigen Dir wie Du sie optimal nutzen kannst.","og_url":"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/","og_site_name":"Web Development tips and tricks - theCodeCampus Blog","article_published_time":"2025-04-15T05:56:37+00:00","article_modified_time":"2026-04-09T09:28:14+00:00","og_image":[{"width":1200,"height":1200,"url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/05\/angular-linked-signals.png","type":"image\/png"}],"author":"Cornelius Rost","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Cornelius Rost","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/#article","isPartOf":{"@id":"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/"},"author":{"name":"Cornelius Rost","@id":"https:\/\/www.thecodecampus.de\/blog\/#\/schema\/person\/ab388f18048c8230505aa5012825ca69"},"headline":"Angular Signals Teil 6 &#8211; Was sind Linked Signals?","datePublished":"2025-04-15T05:56:37+00:00","dateModified":"2026-04-09T09:28:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/"},"wordCount":827,"commentCount":0,"publisher":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#organization"},"image":{"@id":"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/#primaryimage"},"thumbnailUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/05\/angular-linked-signals.png","keywords":["Angular","Angular 19","Angular Change Detection","Angular Linked Signals","Angular Performance Optimization","Angular Signals"],"articleSection":["Angular","Angular 19","Angular Performance Optimization","Angular Signals","Change Detection","Linked Signals","Signals"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/","url":"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/","name":"Was sind Linked Signals?","isPartOf":{"@id":"https:\/\/www.thecodecampus.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/#primaryimage"},"image":{"@id":"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/#primaryimage"},"thumbnailUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/05\/angular-linked-signals.png","datePublished":"2025-04-15T05:56:37+00:00","dateModified":"2026-04-09T09:28:14+00:00","description":"Fragst Du Dich seit Angular 19 auch: Was sind Linked Signals? Wir haben die Antwort und zeigen Dir wie Du sie optimal nutzen kannst.","breadcrumb":{"@id":"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/#primaryimage","url":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/05\/angular-linked-signals.png","contentUrl":"https:\/\/www.thecodecampus.de\/blog\/wp-content\/uploads\/2025\/05\/angular-linked-signals.png","width":1200,"height":1200,"caption":"Angular Signals Part 6 - Linked Signals"},{"@type":"BreadcrumbList","@id":"https:\/\/www.thecodecampus.de\/blog\/was-sind-linked-signals\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.thecodecampus.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Angular Signals Teil 6 &#8211; Was sind Linked Signals?"}]},{"@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\/3238","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=3238"}],"version-history":[{"count":57,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/3238\/revisions"}],"predecessor-version":[{"id":3531,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/posts\/3238\/revisions\/3531"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/media\/3493"}],"wp:attachment":[{"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/media?parent=3238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/categories?post=3238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thecodecampus.de\/blog\/wp-json\/wp\/v2\/tags?post=3238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}