Angular 19 blew me away
摘要
TLDRAngular version 19 is a significant release that aligns its version number with React, showing a commitment to staying abreast of industry standards. This version introduces several important features aimed at improving development experience (DX) and performance. Notably, Angular 19 offers a developer preview of incremental hydration, which promises to enhance performance for applications requiring high efficiency. Changes include improved server-side rendering (SSR) capabilities and the introduction of new reactive programming concepts like signals. The Angular team is also focusing on better integration with the developer community by addressing popular feature requests. With these changes, Angular aims to reduce the gap between its framework and others like React, acknowledging past issues in responsiveness and performance.
心得
- ✨ Angular 19 aligns versioning with React, bridging gaps.
- 🚀 Major focus on developer experience and performance.
- 🌐 New features like incremental hydration introduced.
- 📈 Improved server-side rendering capabilities.
- 💡 Greater attention to community feature requests.
- 🔄 Introduction of signal-based reactivity.
- 🛠 Enhanced build and tooling systems.
- 📚 Modernization without disrupting existing code.
- 🔧 Developer tools integrations improved.
- 🎉 Angular stepping up to meet modern dev needs.
时间轴
- 00:00:00 - 00:05:00
The speaker discusses the new Angular 19 release, noting the alignment of versions between Angular and React, and highlights the community-focused changes that address prior criticisms of Angular's responsiveness to developer needs. They praise the dedication to improving developer experience and performance, and express excitement about detailing the updates.
- 00:05:00 - 00:10:00
The speaker introduces the sponsor of the video, mentioning the capabilities of the browser automation tool Stagehand, which simplifies tasks by allowing developers to use English language prompts. The speaker appreciates its potential for simplifying complex tasks and improving serverless development experiences.
- 00:10:00 - 00:15:00
The speaker expresses enthusiasm for the changes in Angular 19, particularly the focus on developer experience and performance. They reflect on Angular's historical influence, like its early adoption of TypeScript, and the community's positive response to ongoing improvements. Concerns are still noted about the relevance of creating new Angular apps today.
- 00:15:00 - 00:20:00
The new Angular features are highlighted, including incremental hydration, improved server-side rendering, and updated reactivity primitives. The discussion emphasizes Angular's commitment to aligning more closely with current web standards and practices, with examples drawn from other frameworks like Next.js and React. The notion of community-driven feature development is praised.
- 00:20:00 - 00:25:00
The conversation continues with a comparison of Angular's updates to other frameworks, emphasizing new incremental hydration capabilities and server-side rendering improvements. The speaker notes performance enhancements, community feature involvement, and signals-based optimizations, while expressing interest in Angular's competitive dynamics with tools like React and Quick.
- 00:25:00 - 00:30:00
Angular's move towards incremental hydration and performance optimization is discussed in depth. The speaker considers the broader implications of these features, such as load balancing of JavaScript resources, and how they might boost Angular's perception and actual speeds compared to the competition. They express a desire for similar innovations in React.
- 00:30:00 - 00:36:14
The speaker concludes by summarizing Angular's advancements and their focus on improving both developer and user experiences. They highlight Angular's attempt to evolve without alienating existing users, by introducing changes thoughtfully. The speaker appreciates Angular's community shift toward openness and accessibility, and questions if this excites or worries current Angular developers.
思维导图
视频问答
What is the main highlight of Angular 19 release?
The big news is the alignment with React version 19 and a focus on performance and development experience enhancements.
How is Angular 19 different from previous versions?
It involves integrating aspects from frameworks like React and addressing the community's growing demands.
What new features does Angular 19 introduce?
They add a developer preview of incremental hydration, improve server-side rendering, and introduce new reactivity features.
What is the "stageand" project mentioned in the video?
It's a tool that allows writing prompts in plain language for browser automation, simplifying tasks like end-to-end testing.
Why is Angular 19 important for developers?
Angular 19 emphasizes improvements in developer experience and performance, which were seen as weaknesses in previous versions.
Is Angular becoming more community-focused with this release?
Yes, Angular has started considering community feedback more seriously, which is a shift from past practices.
What is "incremental hydration" in Angular 19?
Incremental hydration allows portions of a page to load at different times, improving perceived performance.
查看更多视频摘要
- 00:00:00it's that time of year again looks like
- 00:00:01there's a new angular release and this
- 00:00:03one's actually really exciting not just
- 00:00:05because the react and angular versions
- 00:00:06are finally synchronized at 19 but
- 00:00:08because they're actually seeming to pay
- 00:00:10more attention to both what we're doing
- 00:00:12in other Frameworks as well as what the
- 00:00:14angular Community itself is looking for
- 00:00:16historically angular has not been that
- 00:00:18uh I don't want to say reactive because
- 00:00:20that has other implications but not as
- 00:00:22responsive to what's going on both
- 00:00:24inside and outside I've personally been
- 00:00:26horrified seeing some of the really
- 00:00:27talented engineers in that ecosystem
- 00:00:29whose work was getting ignored but that
- 00:00:31really seems to have changed the angular
- 00:00:3319 release is genuinely pretty exciting
- 00:00:36and I can't wait to tell you all about
- 00:00:37it but first a quick word from today's
- 00:00:39sponsor today's sponsor is browser based
- 00:00:41they're making a new browser it's not
- 00:00:42one for you or me it's for AI and our
- 00:00:45code we've all had to deal with
- 00:00:46playwriter Puppeteer in the past it's no
- 00:00:48fun imagine if it was as easy as command
- 00:00:51enter it actually is you're on the
- 00:00:53hotkey it loads and now you can go
- 00:00:55across the entire web not by writing
- 00:00:58really complex code but by prompting I
- 00:01:00can tell it go to Hacker News click on
- 00:01:02the first search result or any basic
- 00:01:04English query like that and it does the
- 00:01:06right thing but it's not just for doing
- 00:01:08weird things in the browser like this
- 00:01:10it's also fully programmatic so you can
- 00:01:12call your own code in your code base to
- 00:01:14trigger these things as well great for
- 00:01:16us serverless devs who are tired of
- 00:01:18trying to spin up Puppeteer inside of a
- 00:01:19lamb dud hitting limits on the size of
- 00:01:21the folders I've been there I'm sure we
- 00:01:23all have at some point in my opinion
- 00:01:26that's cool enough but where they go way
- 00:01:27further is the new open source project
- 00:01:29they just dropped stageand stageand lets
- 00:01:31you write prompts to do what you used to
- 00:01:33with playwright yes you don't have to
- 00:01:35write all the crazy selectors anymore
- 00:01:37it's a web browsing framework focus on
- 00:01:38Simplicity and Sensibility and honestly
- 00:01:41I can already see myself using this for
- 00:01:42our end to- end testing you literally
- 00:01:44write English instructions for what you
- 00:01:46want it to do and give it a Zod schema
- 00:01:48to validate the data it gives back so
- 00:01:50you go to website in this case we go to
- 00:01:51the browser based stageand GitHub repo
- 00:01:53we tell it to click the contributors you
- 00:01:55don't tell it which element you just
- 00:01:57give it the action in English and it
- 00:01:59figures it out then you tell it in the
- 00:02:00instruction to extract the top
- 00:02:02contributor and it should give it to you
- 00:02:04in this schema format what just for
- 00:02:07comparison's sake here is what you'd
- 00:02:09have to write before even using
- 00:02:11something really nice like playwright to
- 00:02:12do it you would still have to evaluate
- 00:02:14the page select all of the elements by
- 00:02:17hand create an array out of it increment
- 00:02:19through all of them keeping track of
- 00:02:21what their values are selecting these
- 00:02:23weird sub elements with uls and Lis and
- 00:02:26all that chaos now you can literally
- 00:02:28just write an English instruction and it
- 00:02:30does the right thing automating browsers
- 00:02:32should never have been so hard browser
- 00:02:34base makes it almost too easy check them
- 00:02:36out today at so of.ink browser base
- 00:02:39let's dive in the first thing that threw
- 00:02:41me if you didn't know the creator of
- 00:02:43angular specifically angularjs was
- 00:02:46mishko and my who's also the creator of
- 00:02:50quick qwi the framework so seeing minkco
- 00:02:53writing this and not mishko threw me for
- 00:02:55a second but unnecessary tangent let's
- 00:02:58dive in because they are doing some huge
- 00:03:00things in the past two years we doubled
- 00:03:02down on our investment in Dev experience
- 00:03:05and performance which is fun these are
- 00:03:06the two things I would argue angular was
- 00:03:09lacking the most and they're really
- 00:03:10focused on fixing that finally believe
- 00:03:13it or not there was a point in time
- 00:03:14where angular was kind of leading the
- 00:03:16industry in DX they were the first
- 00:03:18framework to go all in on typescript
- 00:03:20even though angular was a Google
- 00:03:22framework and typescript was a Microsoft
- 00:03:24Project I could even make the argument
- 00:03:26we might never have seen the success
- 00:03:27typescript has today if it wasn't for
- 00:03:30and it hurts me to say that but it's
- 00:03:31true in every single release we've been
- 00:03:33consistently shipping improvements that
- 00:03:35multiply their impact when combined
- 00:03:37together seeing the positive Community
- 00:03:38response and increased engagement in our
- 00:03:40developer events is validating that
- 00:03:42we've been moving in the right direction
- 00:03:43today's release is bringing a series of
- 00:03:45improvements that will make it even
- 00:03:46easier for you to deliver fast web apps
- 00:03:48with confidence this is interesting as I
- 00:03:51am suspicious of the number of new
- 00:03:52angular apps being created compared to
- 00:03:55other tools and Technologies but the
- 00:03:57value of angular is that code bases for
- 00:03:5910 years ago suck the exact same amount
- 00:04:02today as they sucked 10 years ago which
- 00:04:04is great where there's a lot of react
- 00:04:05code bases that have had new things
- 00:04:07added layer upon layer that now suck
- 00:04:09worse than they used to angular to its
- 00:04:12benefit and detriment has historically
- 00:04:14moved slow enough to not end up with
- 00:04:15that Rift of quality of experience
- 00:04:17across the code base which has benefits
- 00:04:19and negatives thankfully they are
- 00:04:21focused on making sure the whole angular
- 00:04:24Community gets to come along for the
- 00:04:25ride to these improvements which is huge
- 00:04:27and it's not just interop it's a lot of
- 00:04:28code mod type stuff stuff we'll get to
- 00:04:30that and we'll compare it to how react
- 00:04:31handled things with hooks in just a
- 00:04:33minute first the highlights they
- 00:04:35introduce a developer preview of
- 00:04:36incremental hydration supporting the
- 00:04:38most performance demanding use cases
- 00:04:40incremental hydration is going to be
- 00:04:41real fun the fact that angular knows
- 00:04:43what a server is and that HTML as a
- 00:04:46thing is a huge change that they been
- 00:04:47working towards that we're finally
- 00:04:49seeing the light at the end of the
- 00:04:50tunnel for they add a control for which
- 00:04:52routes render on client server or during
- 00:04:55build and the ability to resolve route
- 00:04:57parameters during those pre-rendering
- 00:04:58steps we don't even really have this in
- 00:05:00nextjs right now so that's going to be
- 00:05:02fun to read they have new schematics to
- 00:05:04keep you up to date with the latest best
- 00:05:06practices uh I don't want to talk about
- 00:05:07dependency injection especially if put
- 00:05:09the word inject the front the new build
- 00:05:10system stuff going to be real cool
- 00:05:12stabilization of core reactivity
- 00:05:13Primitives and the introduction of some
- 00:05:15new ones like linked signal and resource
- 00:05:17this is huge by the way angular went all
- 00:05:19in on signals they almost like built
- 00:05:21solid into the framework in a lot of
- 00:05:23ways and it's allowed for a lot of
- 00:05:25meaningful improvements to Performance
- 00:05:27as well as the way that you can get this
- 00:05:28on your code base which we'll get to in
- 00:05:30a bit probably my favorite call on this
- 00:05:31list though they're actually going
- 00:05:33through feature requests on GitHub they
- 00:05:35set a weird bar of 2700 thumbs up which
- 00:05:38means there was one thing with 25 200
- 00:05:40thumbs up they didn't want to do that's
- 00:05:41why they drew the line there that's
- 00:05:42always how it goes but I get it they
- 00:05:44wanted to use the community signals to
- 00:05:46figure out what people do and don't
- 00:05:48actually care about which is great now
- 00:05:50they have a Time picker component unused
- 00:05:52Import Auto removal running schematics
- 00:05:54via the language server and a bunch of
- 00:05:56other cool things o HMR for Styles is
- 00:05:58huge I can't believe they didn't have
- 00:06:00that what that means is if I have my
- 00:06:01page open and I have my editor open next
- 00:06:03to it and I change something that isn't
- 00:06:05a style it would update the page without
- 00:06:07me refreshing but if I wanted to screw
- 00:06:09around with the Styles like I'm playing
- 00:06:11with the Border color of a chat box and
- 00:06:14I save a CSS change I wouldn't see it in
- 00:06:17the browser until I refresh HMR for
- 00:06:19Styles is huge it's actually one I would
- 00:06:21argue one of the best use cases for hot
- 00:06:23module replacement because if I get my
- 00:06:25page into a state and it doesn't look
- 00:06:27how I want it to I want to be able to
- 00:06:28change the style without losing that
- 00:06:30state and that wasn't popular in angular
- 00:06:32before to their credit this only got
- 00:06:34added to remix like a year ago it was
- 00:06:36one of my biggest issues with it so it's
- 00:06:37not like everyone has this but it's cool
- 00:06:39seeing them catch up to these what I
- 00:06:41would call modern tools standards and
- 00:06:43expectations evolving angular we see the
- 00:06:45opportunity to enable best performance
- 00:06:47practices out of the box so that we can
- 00:06:49support your performance sensitive use
- 00:06:51cases in the past 2 years we kicked off
- 00:06:53a project to enable zoness angular made
- 00:06:55serers side rendering an integral part
- 00:06:57of the angular CLI we worked closely
- 00:06:59with Chrome Aurora on hydration and the
- 00:07:01image directives okay Aurora is the
- 00:07:03collab between Frameworks and chrome
- 00:07:06it's the reason that like next is
- 00:07:07finally getting some nice things with
- 00:07:10pre-rendering and pre-fetching and
- 00:07:11images and all that like added in on all
- 00:07:13sides it's been a nice change and Aurora
- 00:07:15is the the name for this collab weird
- 00:07:18that I haven't heard other Frameworks
- 00:07:19calling it by that name just saying they
- 00:07:20collaborations with chrome but it makes
- 00:07:22sense they're the Google framework
- 00:07:23they're going to use all the proper
- 00:07:24nouns for everything version 19 we're
- 00:07:26elevating angular server side rendering
- 00:07:28to another level with incremental
- 00:07:29hydration server route configuration
- 00:07:32event replay enabled by default and more
- 00:07:35these are huge changes angular up until
- 00:07:38recently had no concept of server
- 00:07:40rendering almost all of it was coming
- 00:07:42from Brandon Roberts with analog JS
- 00:07:44which was his attempt at making a nextjs
- 00:07:47equivalent for angular before angular
- 00:07:49even had proper SSR support he hacked
- 00:07:51all of it in himself now more and more
- 00:07:54of these parts are ending up in angular
- 00:07:56itself I wish it'd give him more credit
- 00:07:58for the work he did and pull him in more
- 00:07:59often but at the very least the progress
- 00:08:01is finally happening is it too little
- 00:08:03too late that's all for me to decide I'm
- 00:08:05just happy it's here the event replay is
- 00:08:07a big one if you're not already familiar
- 00:08:09with what hydration is it means that you
- 00:08:11run JavaScript code on the server to
- 00:08:13generate a page the user gets that page
- 00:08:16but then none of the JavaScript is there
- 00:08:18yet so if I have a button with an
- 00:08:19onclick and I click it but the JS isn't
- 00:08:22loaded yet nothing happens until the JS
- 00:08:24loads and hydrates which means it binds
- 00:08:26all the right JS to the right places on
- 00:08:28the page so it replay does is it allows
- 00:08:30me to when I click a button and the JS
- 00:08:33isn't there yet the HTML has inlined
- 00:08:35some js that caches and puts all of the
- 00:08:38things you do on a queue so when the JS
- 00:08:41finally all loads in at that point it
- 00:08:43can just execute everything in the que
- 00:08:45so if you click a button you have to
- 00:08:47wait a second for all the JS to load and
- 00:08:49bind and everything but the event
- 00:08:50doesn't get lost it just gets buffered
- 00:08:52waiting for the JS that can actually
- 00:08:54process it this is the case in most
- 00:08:56serers side rendered Frameworks which is
- 00:08:58why hydration is isn't a big problem
- 00:09:00sorry mishko we just disagree on this
- 00:09:02one this is the right fix for most of
- 00:09:04the time to be fair that means you'll
- 00:09:06click a button and nothing will happen
- 00:09:08until everything else loads in and with
- 00:09:10angular some of those payloads some of
- 00:09:12those JS files are massive but you're
- 00:09:14not losing events and once that JS loads
- 00:09:16it's all cached and you have no problems
- 00:09:18at all going forward so it's a nice
- 00:09:20thing especially when you combine it
- 00:09:21with incremental hydration which means
- 00:09:22different parts of the page can be
- 00:09:24hydrated in different orders depending
- 00:09:26on what's the most important thing like
- 00:09:27if I go to the Amazon page for a random
- 00:09:30item the add to cart button probably
- 00:09:32needs to work way faster than anything
- 00:09:33else on the page or the buy now button
- 00:09:35versus the leave a review button
- 00:09:37probably doesn't need to be filled in
- 00:09:39quite as early so if you can choose
- 00:09:42which Things become active and have
- 00:09:44their behaviors bound first versus what
- 00:09:46does later that can save you a lot of
- 00:09:48that giant JS chunk to make sure the
- 00:09:51right parts are responsive quicker but
- 00:09:53none of this matters if once the JS is
- 00:09:54loaded things are still slow and they've
- 00:09:56done some really cool things for that
- 00:09:58too which I'm sure we'll get to soon if
- 00:09:59not immediately after building large web
- 00:10:01apps increases the amount of JavaScript
- 00:10:03that we ship to the user do you know
- 00:10:05what else does that begins with an a and
- 00:10:07ends in angular anyways it does
- 00:10:09negatively impact the user experience to
- 00:10:10have too much JS I think we all
- 00:10:12hopefully agree on this at this point if
- 00:10:14not I don't know how I can help you in
- 00:10:16version 17 we made it trivial to lazily
- 00:10:18load code using defer views for client
- 00:10:21side rendered apps for serers side
- 00:10:23rendered apps we introduced full app
- 00:10:24hydration which requires all of the JS
- 00:10:26associated with a given page to make it
- 00:10:28Interactive so what this means if you
- 00:10:30had an element that required a ton of JS
- 00:10:33you could lazily load that JS in later
- 00:10:35so everything else for the page is there
- 00:10:36immediately but as soon as you introduce
- 00:10:38SSR you have to load all the JS now you
- 00:10:42can use defer views to say no don't load
- 00:10:45the JS for this part don't render that
- 00:10:47part yet let the client deal with it
- 00:10:48when it gets there I don't want to block
- 00:10:50on this which is a nice change the way
- 00:10:52to do this in react to nextjs is you use
- 00:10:55their next Dynamic wrapper and pass SSR
- 00:10:57Co and false and in order to do this
- 00:11:00type of behavior cool to see it built in
- 00:11:03to angular directly welcome incremental
- 00:11:05hydration in developer preview okay so
- 00:11:07it's still inev preview it's still very
- 00:11:08new what allows you to do is use their
- 00:11:11at defer directive love or hate
- 00:11:13directives they are what they are wow
- 00:11:15that looks
- 00:11:17familiar okay I I actually genuinely
- 00:11:20love that angular is cloning nextjs
- 00:11:23demos that is such a good sign that
- 00:11:26they're paying attention to what is or
- 00:11:27isn't working I don't care
- 00:11:29how into angular you are nextjs
- 00:11:33react and all the things in that
- 00:11:35ecosystem are innovating much faster and
- 00:11:37bringing us much closer to a better and
- 00:11:39faster web if you're not able to
- 00:11:41acknowledge that you're holding back the
- 00:11:43web angular not only acknowledging this
- 00:11:46but fully embracing it using the
- 00:11:47terminology that was invented on that
- 00:11:49side of the forest and bringing
- 00:11:51it over here is huge and the reason I'm
- 00:11:54going on this tangent is that this demo
- 00:11:55I just watched it looks very familiar
- 00:11:58here is the next JS Commerce
- 00:12:08template pretty funny I love that though
- 00:12:11I like that they're actually paying
- 00:12:13attention to what's going on in the
- 00:12:14ecosystem and making something that
- 00:12:15looks so hilariously similar because all
- 00:12:18of our goals should be the same we
- 00:12:19should be trying to improve the tools
- 00:12:21and Technologies we use to make the web
- 00:12:23and the experience we have building for
- 00:12:25the web better and they're no longer
- 00:12:27living in their own bubble my concern
- 00:12:29here is I don't know how many of the
- 00:12:31angular devs are actually going to like
- 00:12:32this I know a lot of people who picked
- 00:12:34angular because it didn't change and now
- 00:12:36that angular is actually changing and
- 00:12:38improving those people might get upset
- 00:12:40and if you were around long enough to
- 00:12:42know the Red Wedding which was angularjs
- 00:12:44V1 to angular V2 which the dropping of
- 00:12:47JS is because they moved a typescript
- 00:12:49that shift was so big that it makes a
- 00:12:52lot of devs who are around then hesitant
- 00:12:54to any major update ever they just
- 00:12:57assume it's going to break everything
- 00:12:59because angularjs to angular was a
- 00:13:01rewrite of your code base period chat
- 00:13:04saying they all love this but to be
- 00:13:06clear if you're an angular Dev and you
- 00:13:07watch my live streams hell if you're an
- 00:13:09angular Dev and you watch my YouTube
- 00:13:10videos you're probably not the person
- 00:13:13I'm worried about here because you're
- 00:13:14already paying attention like you use
- 00:13:16nextjs for fun on the side you're not
- 00:13:18the average angular Dev you get the
- 00:13:20point I hope they're able to get the
- 00:13:22whole Community excited and to move
- 00:13:24along with them because I hate seeing
- 00:13:26people stuck in the past because they're
- 00:13:28scared of change and if they can ease
- 00:13:30these devs into the change that'll be a
- 00:13:32huge huge win into like to their credit
- 00:13:36react kind of failed with this with
- 00:13:37server components the strategy to make
- 00:13:39the average react Dev respect server
- 00:13:41components is for the react team to help
- 00:13:43me and people like me communicate about
- 00:13:45them better I hope it wins I like to
- 00:13:47think that strategy is good but it's
- 00:13:49complex and different enough way of
- 00:13:51thinking and reactiv has spent so much
- 00:13:53time on the client and so little time on
- 00:13:54the server that they struggle with the
- 00:13:56new mental model I don't know if the
- 00:13:57average angular dev has changed their
- 00:13:59mental model for 5 years so I'm curious
- 00:14:01to see if and how they pull this off and
- 00:14:03if they do I hope I can learn a bunch
- 00:14:04from it too as I try to get people on to
- 00:14:06the under the train leading to the
- 00:14:09Future so let's actually pay attention
- 00:14:11to this
- 00:14:12demo okay so he clicked and then it
- 00:14:15hydrated that
- 00:14:19part
- 00:14:21interesting and when you clicked there
- 00:14:23there was a loading spinner there or a
- 00:14:24loading State and that loading State
- 00:14:26wasn't because we were waiting for the
- 00:14:27server to respond with the new p AG it
- 00:14:29was because the JS had to load hydrate
- 00:14:31that spot and then get interactive this
- 00:14:34is actually a really good thing if they
- 00:14:35can get this working for giant angular
- 00:14:37code bases it'll make the perceived
- 00:14:39responsiveness of these old angular apps
- 00:14:41that are huge much better there's a bit
- 00:14:43of backstory here where angular and whiz
- 00:14:46which are the two Google Frameworks one
- 00:14:47is the popular public one angular one's
- 00:14:50the nobody knows about it private one
- 00:14:52whiz whiz is super fast and performance
- 00:14:55and its DX is absolute garbage
- 00:14:57internally they've been trying to fuse
- 00:14:58together angular and whz and merge them
- 00:15:00into one framework with the best of both
- 00:15:02but I have concerns specifically you're
- 00:15:04probably watching me on YouTube right
- 00:15:05now YouTube was written in whiz this
- 00:15:07means they're going to be porting
- 00:15:08YouTube to angular if they can get all
- 00:15:09the stuff in first YouTube will be
- 00:15:11slightly faster if they can't or they
- 00:15:12have to turn off any of these features
- 00:15:13YouTube is going to get way slower so I
- 00:15:15I hope for my own livelihood they pull
- 00:15:18this off because whether or not I use
- 00:15:20angular it's probably going to be the
- 00:15:21single framework most responsible for my
- 00:15:23income in the near future so we're
- 00:15:25rooting for
- 00:15:26them so here's how they describe what's
- 00:15:29going on here a component in grayscale
- 00:15:31filter shows angular hasn't loaded and
- 00:15:33hydrated yet angular downloads a
- 00:15:34component from the network when the
- 00:15:36component starts pulsing angular has
- 00:15:38downloaded and hydrated the component
- 00:15:39when there's a purple border around it
- 00:15:40and the component no longer has a
- 00:15:42grayscale filter okay so all of the gray
- 00:15:44scale isn't just them doing the versel
- 00:15:47theming it's them showing the thing
- 00:15:49hasn't hydrated yet that makes sense
- 00:15:52yeah once you've clicked here now this
- 00:15:53whole thing has been hydrated and now if
- 00:15:55you click other things there it'll be
- 00:15:56way faster okay this is making sense
- 00:15:59it's funny cuz this is like what mishko
- 00:16:01was trying to do with quick and he's
- 00:16:02going to be so mad if angular beats him
- 00:16:04to it oh the demo also has an artificial
- 00:16:07delay of 500 milliseconds for each
- 00:16:08loading operation so that's why it seems
- 00:16:11slow with those things coming in they
- 00:16:12did that to make the demo good if you
- 00:16:14had a shitload of JavaScript and you
- 00:16:16were on a slow internet connection it
- 00:16:17could actually take that
- 00:16:20long here's a cool point though notice
- 00:16:22that at the beginning everything beside
- 00:16:24the top bar is grayed out this means
- 00:16:26that at this point we have not
- 00:16:27downloaded any of the JS ass associated
- 00:16:29with the page when the user engages with
- 00:16:31the filter component at the top left
- 00:16:32angular downloads it which they
- 00:16:33indicated by pulsing and after that it
- 00:16:35hydrates it so by default angular isn't
- 00:16:38loading JS until you start doing things
- 00:16:41then the JS comes in there's a lot of
- 00:16:43benefits and a lot of negatives to this
- 00:16:45approach I think it's pretty hype the
- 00:16:47potential here is huge I am assuming
- 00:16:49that it will start to prefetch things in
- 00:16:51the background if you're not doing
- 00:16:52anything and it will optimize for the
- 00:16:53ones you're clicking on and not just
- 00:16:55rely on these actions because if it only
- 00:16:57downloads the JS when you interact
- 00:16:59everything's going to feel slower until
- 00:17:00everything's been downloaded but I'm
- 00:17:02they're going to find the balance here
- 00:17:03there's a reason it's a preview feature
- 00:17:05that said it's really cool it'
- 00:17:07be cool to see this in react did wait oh
- 00:17:10no I just said it would be cool if react
- 00:17:12gets something that angular has first uh
- 00:17:17I'm going to have an existential crisis
- 00:17:18that's that's a first a first and then
- 00:17:20some even without the artificial delay
- 00:17:23angular now will download and hydrate
- 00:17:24the components asynchronously which
- 00:17:26means that we have to replay the user
- 00:17:27events for this function we're using the
- 00:17:29event Replay that was introduced in
- 00:17:31angular version 18 which Powers Google
- 00:17:33search Google search is powered by
- 00:17:35angular now it's a funny tweet that
- 00:17:38immediately came to mind when I learned
- 00:17:39that angular is being used on
- 00:17:41google.com on Google's own core vital
- 00:17:45scores google.com fails which is pretty
- 00:17:49funny because these are the scores
- 00:17:50Google uses to pick what things it
- 00:17:51should or should index as strongly and
- 00:17:53it fails its own test which is really
- 00:17:56funny and the fact that inp is as low as
- 00:17:59it is that it takes 250 milliseconds
- 00:18:01from when you click something to when
- 00:18:02you get to the next part if they're
- 00:18:04waiting for the JS to load from when I
- 00:18:05click to when I see the result this
- 00:18:07might actually be the reason that score
- 00:18:08was that low like as hilarious as it is
- 00:18:10it might actually be angular introducing
- 00:18:13event replay on google.com that pushed
- 00:18:16back this number like that that's kind
- 00:18:19of funny I'm not saying it's bad I'm
- 00:18:21saying it's interesting that's all of
- 00:18:23course multiflex showing that all of our
- 00:18:25cell stuff
- 00:18:27passes oh next faster does pass didn't
- 00:18:29know that that's cool yeah this is a
- 00:18:31funny call out because uh levels had
- 00:18:33said every website fails Google's core
- 00:18:35web vitals not every website I'd argue
- 00:18:38most versell websites probably don't but
- 00:18:40yeah it is what it is worth
- 00:18:42considering also on the same topic page
- 00:18:45speed. web.dev which is the thing we're
- 00:18:46running the test on scores terribly on
- 00:18:49page speed there is also the call out on
- 00:18:52levels IO thing where he thinks it's
- 00:18:53impossible for anyone to get this
- 00:18:55because the way he builds it's really
- 00:18:56hard to get these scores but can also
- 00:19:00game them and get good ones I thought
- 00:19:01Malta had responded here I can't find it
- 00:19:03but I know a lot of other Engineers
- 00:19:04showed how you get the good scores but
- 00:19:07also that sites that fly like next
- 00:19:09faster which I did a whole video on how
- 00:19:11insanely fast the site is this site
- 00:19:14scores poorly on that because it
- 00:19:15measures weird I really think that
- 00:19:18the page speeds insights needs to be
- 00:19:20overhauled to be a little more modern
- 00:19:23when you update angular 19 you can try
- 00:19:24the new incremental hydration in any
- 00:19:26application that already uses SSR and
- 00:19:28and has full application hydration in
- 00:19:30your client bootstrap you specify the
- 00:19:32following you add the with incremental
- 00:19:34hydration to provide client hydration
- 00:19:37cool you can even apply it to portions
- 00:19:39of your template with at defer I hate
- 00:19:42the syntax so much we're going to ignore
- 00:19:44the syntax because there's cool things
- 00:19:45here if I just don't if I pretend this
- 00:19:47isn't angular I can learn a lot of cool
- 00:19:49things here but if I had to pick between
- 00:19:50page speeds being modernized and angular
- 00:19:53being modernized I hate him saying it
- 00:19:55but I would pick
- 00:19:56angular here we are they have the whole
- 00:19:59section here on event replay I mentioned
- 00:20:01how this works they have their event
- 00:20:03dispatch Library oh are they not using
- 00:20:05angular itself they're just using the
- 00:20:07event dispatcher because it's a separate
- 00:20:08Library that's kind of cool and as I
- 00:20:11mentioned before this is part of the
- 00:20:12convergence of angular and whiz which is
- 00:20:14why these things are happening and being
- 00:20:16broken out this
- 00:20:17way this is exactly what I said before
- 00:20:20where the page starts listing for all JS
- 00:20:22events stores them and then once
- 00:20:25everything else loads the event
- 00:20:26dispatcher can trigger those JS events
- 00:20:28it's cool stuff worth a dig if you're
- 00:20:30curious about it I don't think I could
- 00:20:32possibly make a video about that people
- 00:20:33care
- 00:20:38about are they even using excal draw for
- 00:20:41demos now are they watching
- 00:20:44me I should have worn my angular shirt
- 00:20:46for this for what it's worth the
- 00:20:47angular team's actually been really nice
- 00:20:49for me to chat with and work with
- 00:20:50they've been super friendly and kind and
- 00:20:53good God am I becoming no I I need to
- 00:20:55stop I'm not going to become an angular
- 00:20:56person I'm not going to do it oh wait no
- 00:20:59we know this is an angular because they
- 00:21:00use capital letters for the
- 00:21:02components it is actually cool seeing
- 00:21:04them use excalon things like that for
- 00:21:05this though I love this o they made
- 00:21:08event replay the default that's actually
- 00:21:10huge so this will just work for
- 00:21:12everybody because I'll be real most
- 00:21:14angular devs aren't turning on
- 00:21:15experimental features they're angular
- 00:21:17devs for a reason these things becoming
- 00:21:19the defaults actually going to improve
- 00:21:21the quality of experience on the web
- 00:21:22like Cisco's web connect and their whole
- 00:21:25like whatever it's called their
- 00:21:27Zoom equivalent just got so much better
- 00:21:29once they updated to angular 19 in 2
- 00:21:31years I'm curious about this route level
- 00:21:33render mode oh oh I get this since in
- 00:21:37angular you configure your routes
- 00:21:39instead of it all being path-based uh I
- 00:21:41like route config I like this I wish I
- 00:21:43could do this in next for a lot of
- 00:21:44reasons the fact that you can specify
- 00:21:47how it should render you can say this
- 00:21:49should be server rendered this should be
- 00:21:51client rendered and this should be
- 00:21:53pre-rendered so we render it on the
- 00:21:54server and then the client takes over
- 00:21:56from there that's cool that you can
- 00:21:57configure that I actually really like
- 00:21:59that in nextjs you have to export magic
- 00:22:01variables for their equivalent which is
- 00:22:03not fun they're slowly moving away from
- 00:22:05that with partial pre-rendering and
- 00:22:06dynamic IO but since angular is never
- 00:22:09going to do magic right I like they gave
- 00:22:11me the config here this is good I like
- 00:22:13this a lot I'm not going to say I want
- 00:22:15this in react again it's going to hurt
- 00:22:16me if I do we're going to get this in
- 00:22:18tan stack to be fair So Tan stack starts
- 00:22:20going to be real similar oh God is tan
- 00:22:22stack start the angular of react I don't
- 00:22:24want to think too hard about that
- 00:22:25thought in the past there was no
- 00:22:26ergonomic way to resolve route par
- 00:22:28parameters at pre-render time which
- 00:22:30means like if you have an ID in the URL
- 00:22:32or you have a query pram the end of the
- 00:22:34URL those types of things you couldn't
- 00:22:36get them when you did pre-rendering not
- 00:22:38that you can and it's funny you could
- 00:22:40actually do this relatively easily with
- 00:22:42page router with nextjs but app router
- 00:22:44does not make it friendly at all it's
- 00:22:46nice you can just specify I want these
- 00:22:48IDs I'm going to grab them and then I'm
- 00:22:49going to return a map of them because
- 00:22:51now it's going to go through all the
- 00:22:53values here and generate HTML for them
- 00:22:55during build so when a user goes to the
- 00:22:57pages been generated nice quality change
- 00:23:02serers side rendering was zoness angular
- 00:23:04Zone JS has historically been a critical
- 00:23:06component in angular's SSR notifying the
- 00:23:08serving stack when the framework is
- 00:23:09completed rendering and all of the
- 00:23:11markup on the page is ready we identifi
- 00:23:13the main reason to wait for apps are
- 00:23:14pending requests in navigation we
- 00:23:16introduce a primitive that we use in
- 00:23:17angular with HTP client as well as the
- 00:23:19router which delays sending the page to
- 00:23:21users until the app is ready that means
- 00:23:23you don't need Zone JS which is the
- 00:23:24thing that kept track of all that in the
- 00:23:25past I'm not familiar with how much
- 00:23:27people would be upset with JS and why
- 00:23:29they care so much but if they put it
- 00:23:30this high up it's got to be a big deal
- 00:23:32it is cool that rxjs which might not be
- 00:23:34popular outside of angular anymore still
- 00:23:36very much part of their world that you
- 00:23:38can pipe the event for when the page is
- 00:23:41actually done hydrating so you can
- 00:23:43trigger things at that point very nice
- 00:23:46when the subscription emits a new value
- 00:23:47we'll make the app stable and the
- 00:23:48serving stack will pass the rendered
- 00:23:50markup to the client
- 00:23:52interesting anyways let's dive into DX
- 00:23:54because uh I've been making jokes about
- 00:23:56it the whole time I want to hear the
- 00:23:57actual changes instant edit and refresh
- 00:24:00with HMR that's huge you save and you
- 00:24:03see the change angular 19 supports HMR
- 00:24:05for Styles out of the box and they
- 00:24:06enable experimental support for
- 00:24:08templating H HMR as well oh they had no
- 00:24:11HMR before sty is just the only thing it
- 00:24:13supports by default interesting as a
- 00:24:16react Dev that's been building things in
- 00:24:18other tools especially like I've been
- 00:24:20building a game in phaser.js I didn't
- 00:24:22realize how used to saving checking
- 00:24:25browser saving checking browser I was
- 00:24:28the fact that I have to refresh and
- 00:24:29build systems to get back to the state I
- 00:24:31care about is very strange and I'm not
- 00:24:34like I'm still struggling with the
- 00:24:35mental adjustment to that the fact that
- 00:24:37angular didn't have it is terrifying but
- 00:24:38they're finally taking it seriously
- 00:24:40because they actually care about DX now
- 00:24:42yeah look at that you save a style and
- 00:24:43as soon as you save it you see the
- 00:24:45difference you don't have to refresh it
- 00:24:46or lose the state if you have a counter
- 00:24:48or like a chat widget it holds it in the
- 00:24:50right spot yeah we do Standalone
- 00:24:52components over 2 years ago in v14 wa
- 00:24:55there's been five majors in 2 years for
- 00:24:58ER the we've had one major in 3
- 00:25:01years for react Place developer survey
- 00:25:02over 90% of devs said they're using this
- 00:25:04feature as part of v19 we're providing a
- 00:25:06schematic that will run as part of the
- 00:25:08NG update and it will automatically
- 00:25:10remove the Standalone component metadata
- 00:25:12property for all your Standalone
- 00:25:13directives components in pipes set
- 00:25:15Standalone to false for non-standalone
- 00:25:17abstractions yeah it turns out isolated
- 00:25:19components are a good thing who would
- 00:25:20have thought oh that's the thing I had
- 00:25:22even thought of HMR looks great might
- 00:25:24stop editing Styles and Dev tools I
- 00:25:26forgot people do that I don't change
- 00:25:29Styles in Chrome I change them in my
- 00:25:31editor and look at them in Chrome
- 00:25:33because it's faster to do it that way
- 00:25:35the fact that people still rely on
- 00:25:36Chrome Dev tools for testing Styles is
- 00:25:38insane to me and it shows just how bad
- 00:25:41the DX was at the time I so thankful we
- 00:25:43don't need to do that anymore oh they
- 00:25:45even added a compiler check to say all
- 00:25:47components have to be Standalone CU
- 00:25:49historically components were not as
- 00:25:51fully encapsulated and the relationship
- 00:25:54between them was complex people don't
- 00:25:56want to build that way anymore so they
- 00:25:57let you emphas and specify and compile
- 00:26:00or check that you're not building with
- 00:26:01the weird bridging between elements
- 00:26:03anymore that's a huge change turns out
- 00:26:05again isolated components are a good
- 00:26:07thing state of testing tooling I don't
- 00:26:09care secure from the start I kind of
- 00:26:12care oh there was some weird strict
- 00:26:15content things I I did an angular
- 00:26:16project for a uh a demo at render ATL
- 00:26:20this year where I ran an angular project
- 00:26:23inside of a next project for a demo the
- 00:26:26amount of weird meta tag angular does by
- 00:26:29default around like base URLs and stuff
- 00:26:31is terrifying curious what they changed
- 00:26:34here they automatically will generate a
- 00:26:36hash-based strict kind of security
- 00:26:37policy based on the scripts in your
- 00:26:39index HTML the browser will add the hash
- 00:26:41of every inline script to the CSP each
- 00:26:43script will have a unique hash
- 00:26:45associated with it that will prevent an
- 00:26:46attacker from running a malicious script
- 00:26:48on your page because for the browser to
- 00:26:49execute the script its hash needs to be
- 00:26:51present in that CSP that's cool it's
- 00:26:54more bloat in the angular like metadata
- 00:26:55field but nice they're doing those
- 00:26:57things
- 00:26:58this might break Chrome extensions
- 00:27:00actually interesting evolving
- 00:27:03reactivity here's where we get to the
- 00:27:04real fun signal stuff I was hinting out
- 00:27:06before the stuff that makes angular go
- 00:27:08from the slowest framework to one of the
- 00:27:09fastest in one feature ad Core theme for
- 00:27:12angular over the past two years has been
- 00:27:14evolving our reactivity system in v19
- 00:27:16we're excited to share a couple new
- 00:27:17complimentary apis as well as the
- 00:27:19stabilization of some of the fundamental
- 00:27:21reactivity apis that we introduced in
- 00:27:23the previous versions such as input
- 00:27:25output and view queries I hate these
- 00:27:27names but we'll see what they do this is
- 00:27:30where things start to get real fun the
- 00:27:33stabilization of these new signal-based
- 00:27:35apis so inputs and outputs and view
- 00:27:37queries are how a lot of the data
- 00:27:39management goes in existing angular apps
- 00:27:42they've been moving these apis over to
- 00:27:44use signals so they can be much more
- 00:27:46granular with their updates now that
- 00:27:48they've stabilized the apis and they've
- 00:27:50finished the signals part you can run
- 00:27:52these generate commands that will update
- 00:27:55all of the usage you have of the
- 00:27:57standard inputs queries and outputs apis
- 00:28:00to make them use the new signal based
- 00:28:03apis instead which should be a one run
- 00:28:06and now your app is faster there are
- 00:28:08catches they call out that since signal
- 00:28:10inputs are read only in contrast to
- 00:28:12traditional inputs you might need to
- 00:28:13migrate parts of your app manually if
- 00:28:15you're actually setting inputs directly
- 00:28:17but you can run all of these at once and
- 00:28:19you might end up with an app that runs
- 00:28:20much better that's pretty cool this is
- 00:28:23kind of like what we're seeing in the
- 00:28:24react World with the compiler but it's
- 00:28:27less like we have a new API that's how
- 00:28:28you're going to write react it's more
- 00:28:30the compiler takes your react code and
- 00:28:32makes the actual output different
- 00:28:34different approaches with similar goals
- 00:28:35cool to see them making so much progress
- 00:28:38though o modernize your code via the
- 00:28:40language service and always been really
- 00:28:42deep on the dev tools side like they
- 00:28:44were first to typescript they cared a
- 00:28:46lot about the language server and things
- 00:28:48like VSS code it's not surprising that
- 00:28:50they're going all in on that with these
- 00:28:51huge changes what's cool here is you can
- 00:28:53now click an input and convert it to a
- 00:28:55signal input that's pretty cool there's
- 00:28:58one click to do that now very different
- 00:29:00syntax so input checked is
- 00:29:02false convert input to a
- 00:29:06signal now it's readon checked pretty
- 00:29:11cool readon checked equals input false
- 00:29:13using the input from angular core
- 00:29:15instead of the
- 00:29:16directive entirely different syntax but
- 00:29:19the potential performance here is
- 00:29:20massive cool to see that they have a
- 00:29:22code mod as well as editor tools to help
- 00:29:23you start migrating these things like
- 00:29:25imagine if when class components got
- 00:29:27moved to hooks
- 00:29:28react gave us these tools to
- 00:29:31automatically start migrating things
- 00:29:33over to hooks angular has to because
- 00:29:35nobody wants to be in an old angular
- 00:29:37code base in general but if they're
- 00:29:39going to start making these changes they
- 00:29:40need to make it as easy as possible so
- 00:29:42you don't end up with a split in your
- 00:29:43code base of the old way and the new way
- 00:29:45because that's like the specific thing
- 00:29:46they want to avoid so it's cool to see
- 00:29:47they care this much about these parts
- 00:29:49they also introduced linked signals
- 00:29:51because people called out that they
- 00:29:53needed a solution for this common use
- 00:29:55case CU often in uis there's a need for
- 00:29:57mutable State that's still tracks some
- 00:29:58higher level state so if you have a
- 00:30:00selection UI that is a current selection
- 00:30:02state which changes as the user makes
- 00:30:03selections but it also needs to reset if
- 00:30:06the list of options gets changed the
- 00:30:08linked signal primitive creates a
- 00:30:09writable signal which captures this type
- 00:30:11of dependency so we have a signal with
- 00:30:14apple banana and fig a linked signal
- 00:30:16which picks the first option and now if
- 00:30:19we set our choice to Fig and we call it
- 00:30:23we see it's fig but if we update the
- 00:30:25options so that they're actually Peach
- 00:30:26and kiwi instead of these three options
- 00:30:28if we still had fig that's an invalid
- 00:30:30State because the options doesn't
- 00:30:32include fig hell I've even had this
- 00:30:34problem with pick thing I'll show you
- 00:30:36guys ignore
- 00:30:37Biden if I select actually we won't
- 00:30:40ignore Biden I'll select these now I'm
- 00:30:42going to click white shirt I still have
- 00:30:45two
- 00:30:46selected because I'm not updating the
- 00:30:49selection based on what is or isn't
- 00:30:51visibly available because I'd have to
- 00:30:53double the amount of code to do that I
- 00:30:55will eventually but I haven't yet and as
- 00:30:58a result you have these states where it
- 00:30:59says I have two things selected where I
- 00:31:01don't see anything on the screen that
- 00:31:03can be selected and I can't even
- 00:31:04unselect them until I change the state
- 00:31:06the only way to fix this is a lot of
- 00:31:08annoying update code but now with linked
- 00:31:11signals you can build these like
- 00:31:15derivative layers on top these dependent
- 00:31:17chains to update as things go they're
- 00:31:20derived values with the ability to set
- 00:31:22specific values so I I see that people
- 00:31:25like to name this computed values but
- 00:31:26there's a different because a comp
- 00:31:27computed value can't be set if this
- 00:31:30computed value was just we take the
- 00:31:32first thing from options and then never
- 00:31:34let you change it cool computer value
- 00:31:36works the difference here is once we
- 00:31:39have set this you can now update it
- 00:31:41later on to not be the first value but
- 00:31:44if the dependent value changes it will
- 00:31:46reset with functionality that's good
- 00:31:49there are catches there are absolutely
- 00:31:51catches like using this to do what I
- 00:31:53just showed properly requires you write
- 00:31:55a lot of code in this link signal update
- 00:31:57function but will at least work there's
- 00:31:59a lot of potential here to build better
- 00:32:01ux as a result of these changes that is
- 00:32:03quite exciting it's also worth noting
- 00:32:05that angular has its own computed signal
- 00:32:08which is what we were just describing
- 00:32:09where it only ever can be the value
- 00:32:11determined in this function I can't
- 00:32:13override double count the only way I
- 00:32:15change double count is by changing count
- 00:32:17because it's a derived value it comes
- 00:32:19from the original what a linked signal
- 00:32:21is is actually a somewhat New Concept
- 00:32:23where it is a derived signal that gets
- 00:32:26rederived whenever the state that it
- 00:32:28depends on changes but can still get
- 00:32:31updated by the developer directly
- 00:32:34separately I ask about this like do you
- 00:32:36get to see the options as well as what
- 00:32:38was previously selected good also
- 00:32:40has an advanced API which allows more
- 00:32:42complex logic such as maintaining the
- 00:32:43user's Choice as long as it exists in
- 00:32:45the new list of options as I was just
- 00:32:47showing signals and angular have focused
- 00:32:49on synchronous data storing State and
- 00:32:51signals computer values inputs queries
- 00:32:53Etc in angular 19 we're taking our first
- 00:32:55steps towards integrating signals with
- 00:32:57the asynchronous operations by
- 00:32:58introducing a new experimental resource
- 00:33:00API it's an asynchronous dependency that
- 00:33:02participates in the signal graph is
- 00:33:05everything just becoming
- 00:33:06solid okay so we get the user ID which
- 00:33:09is an input user service which is an
- 00:33:11inject and then user is a resource that
- 00:33:14uses the user ID and it gets the user
- 00:33:17from user service is this like how Hooks
- 00:33:20and context were trying to kill Redux
- 00:33:22both indirectly and directly angular is
- 00:33:25now trying to kill RX they still it as
- 00:33:28they show here but yeah very
- 00:33:30interesting they have their effect API
- 00:33:32which is kind of like use effect and
- 00:33:34react if you're familiar and if you know
- 00:33:36how foot gun use effect is then you
- 00:33:38might not be surprised to say that they
- 00:33:40are taking their time to make sure they
- 00:33:42get effects semantics right we'll keep
- 00:33:44this API in developer preview to open
- 00:33:46the door for changes if we discover use
- 00:33:48cases we haven't taken into
- 00:33:49consideration yet yep more work on
- 00:33:51zoness apparently everyone hates Zone JS
- 00:33:54it's one of the biggest heaviest parts
- 00:33:56of angular and everyone wants to move
- 00:33:57away from so it's cool to see progress
- 00:33:58there I'm not going to pretend I care
- 00:34:00about material I've talked about
- 00:34:03material theming too much this stream
- 00:34:04already the angular cdk has Dragon drop
- 00:34:07in it
- 00:34:09interesting it's weird seeing these
- 00:34:11things being built into the framework
- 00:34:12I'm so used to react which like doesn't
- 00:34:14even have a concept of styling this is
- 00:34:16actually a cool section evolving apps
- 00:34:18with unfolding best practices it's one
- 00:34:20of our core values to evolve your apps
- 00:34:22together with angular and the web
- 00:34:23platform to ensure your apps are using
- 00:34:25the latest apis as well as best
- 00:34:27practices we shipped multiple
- 00:34:28improvements mentioned before the
- 00:34:30default value of Standalone has now been
- 00:34:31changed so you're more likely to write
- 00:34:33components in the Standalone fashion
- 00:34:35optional schematic transforms for your
- 00:34:37constructor-based dependency injection
- 00:34:38to inject functions yeah all
- 00:34:41words the generator to update to the new
- 00:34:43signal stuff is in there new clustering
- 00:34:46stuff the the point being they are very
- 00:34:50understanding of how big and ancient a
- 00:34:53lot of these old code bases were and
- 00:34:55their goal isn't to just make a new
- 00:34:57angular that makes everyone in the past
- 00:34:58feel bad they are going out of their way
- 00:35:01to avoid another red wedding and they're
- 00:35:03doing that by introducing best practices
- 00:35:05slowly helping the community get used to
- 00:35:07them and then setting them as a default
- 00:35:08a year or two later that's a good
- 00:35:10strategy that's cool to see and when
- 00:35:12your framework prescribes different ways
- 00:35:14to do things like this but the
- 00:35:16framework's realization of the right way
- 00:35:17changes over time it's so important to
- 00:35:20balance this out and it's honestly
- 00:35:21exciting to see them figuring it out
- 00:35:22they have a huge thank you here at the
- 00:35:24bottom which might not seem like that
- 00:35:26big of a deal but for angular it is the
- 00:35:29shift away from angular is the separate
- 00:35:32team living in their Ivory Tower
- 00:35:34building things and maintaining them for
- 00:35:36us to all figure out towards being more
- 00:35:38Community focused has been something
- 00:35:39I've even noticed externally as a react
- 00:35:42Dev we even had this problem and react
- 00:35:44for a bit now the react team is more
- 00:35:45accessible than ever but yeah angular
- 00:35:48just felt like a black box and now it
- 00:35:51doesn't now I have people on the angular
- 00:35:53team reaching out to me to be clear none
- 00:35:56of the mby to cover any of the this
- 00:35:57stuff I'm doing it because I found this
- 00:35:59to be a very interesting release and I'm
- 00:36:01curious if you agree does this make you
- 00:36:03excited about angular or at the very
- 00:36:05least hyped to know the angular devs
- 00:36:06aren't falling behind or is this making
- 00:36:09you disturbed as an angular Dev let me
- 00:36:10know in the comments and until next time
- 00:36:13peace narts
- Angular
- React
- release 19
- performance
- developer experience
- SSR
- incremental hydration
- community feedback
- signals
- modernization