How did this not exist before???
ฝัง
- เผยแพร่เมื่อ 8 ธ.ค. 2024
- The browser finally has a way to move elements! moveBefore() is a very exciting new API that has a ton of potential use cases.
Check out UploadThing! uploadthing.com
SOURCES
groups.google....
state-preservi...
bsky.app/profi...
Coolest thing I built vid: • The Coolest Thing I Ev...
Check out my Twitch, Twitter, Discord more at t3.gg
S/O Ph4seOn3 for the awesome edit 🙏
Damn, he ran out of sponsors and had to result to default option, adverts for adverts.
Reminds me of "your ads here" posters in the city.
Sponsor him, lol 😅
@@cherubin7thYOUR MOM IS HERE
How long until we get a moveAfter() ?
5 years
Yeah it was weirdly specific placement
or just do normal dom manipulation and do whatever placement you want, when did moveBefore, after deserve a youtube video, are we serious :)
@@husseinkizz did you even watch the video? Did you not see the issue with normal dom manipulation....
Canary means whenever, but I was waiting for backdrop filter for YEARS
Wooooo that API is going to be huge for WebContainer and its previews.
For TutorialKit which uses Astro we had to use a fork of Astro temporarily exactly for that reason. And for the previews we have them absolutely positioned to make sure their state is not lost.
Thanks for sharing this! ❤
“This goes way beyond what we can do with react.”
I find myself saying that a lot.
I could barely notice the sneaked-in thumbnail in 4:10. Can't believe how stealth the editor was.
Jokes aside, this API seems pretty cool. Not something you will use everyday, but something you'll be glad exists when you do need it.
Me moving the mute button for the autoplay video into accordions when the mouse comes to close
Me muting entire browser tab
Small correction: In the current DOM, an element is not deleted and recreated, it's removed and re-inserted. When that happens some state is preserved (e.g. playback position), but some state is not (like content window).
Amazing! This reduces the need for so many processes behind the scenes.
With each day I appreciate my companies 10 year old custom built framework, we sort of have it sorted. In our case instance that represents component and it's state in virtual dom is never destroyed when we want to place it elsewhere. I will guess it's tied to parent which created it in first place. Till this day I am not sure was this intentional or not but I do like how it works.
Just to clarify it's far from what new feature offers, there are edge cases
I love the dialog element. This is awesome too.
So is no one going to talk about the colors are actually orange and green not red and blue??
Nah, I'm sure it's just an image calibration issues... It's totally red and blue!
Well let me nitpick a sec, it looks more like washed out red and teal.
I heard Brainstorm
It's definitely a pale red/orange and teal/green
Thank you for covering web platform tech, do more!
React portal is a lifesaver. So cool! Used it recently to fix modal bugs. Thanks for that vid!
I've personally done this using a shadow DOM. Then the doesn't loose the state. But it is great to see this new feature.
Sorry if this is off topic, but I haven't moved to bsky yet, and I'm asking if I should?
Yes, is the answer
people are saying it is the better twitter but it is really just twitter with a smaller following, once it becomes big enough it'll just be the same old twitter we all hated
@@javierflores09 that's not true at all due to its architecture
@@javierflores09it's smaller because all the nazis stayed on twitter. most people i follow have moved over at this point, and there's increasingly more people deleting their twitter accounts entirely
@javierflores09 not true at all. It's decentralized and built with algorithm that you can control (based on your likes, not your scrolling activity). Additionally, the community is much more positive and outspoken against propaganda, and the algorithm doesn't punish you for content or links. (X's algorithm has been shown to show posts less if they contain a link to another page, or if they mention bluesky for example). This is bad because it means posts with real references aren't promoted on the app and fake news is everywhere. Also if you want to point your following to let's say an app you made or your new business, good luck because X's algorithm won't show it to many people.
@0:28 Oh! You React Devs!
How? Because the W3C is slow and incompetent and has been since day 1. It’s why it took like 12 years to finish the HTML 4 standards and Microsoft and Netscape just did their own thing because people needed to get things done and couldn’t wait a decade for simple functionality to get standardized.
This is primarily what kept to so much browser feature support fragmentation for so long.
1:57 - No, Theo. We will in fact, not see...
? He was literally showing it on screen.
@Efecretion There are sometimes these comments that are so absolutely stupid, you don't know how to respond to them... Yeah, he was. So large and squished it was hard to get the general picture.
@@shapelessed the hierarchy could not have been more clear. I'm very confused on how any of that was confusing to you
Damn... I can already imagine Rick rolls now dancing around the whole screen along with him. Try pausing that video now 😂
Can we preserve the state of a component when using conditional rendering in React?
For example, if we render a component when a condition is true, fill some inputs, or modify its display elements, and then unmount it when the condition is false, can we get the same state back when the condition becomes true again?
Here’s a simple example:
{showForm && }
If showForm becomes false, the MyForm component unmounts. When showForm turns true again, does React preserve the input values, or is the component state reset? If not, how can we achieve this?
Huge, but it must be keeping a reference in memory and perhaps all the Dom now have this new thing?
transition-all duration-0 0:44
Will this support CSS transition?
Perhaps in 5 years
Yes, it does already
I think it's super powerful, but since you're now able to mutate things ( rather than having nice discrete short lifespans ) that's going to lead to a ton of difficult to solve problems ( as before some nasty state situation would have been harder to get to ( since constant element replacement ), and even if they were encountered, they could be disposed of and replaced quickly.
I think if used sparingly it will become incredibly valuable, but looking at the current state of software engineering, the benefits of immutability will discarded quickly, and this will become overused causing some difficult to solve issues.
I bet it doesn't change current behavior but why would you call input.remove() at 6:55? An element can only have one parent so appendChild itself should reparent an element without having to call remove before. Intuitively, this should already have the state preserving behavior, though if appendChild implies a remove from the DOM and a subsequent add to the parent child list ... yeah this can get very confusing.
but it doesn't, state is not preserved, video is paused.
@@profesor08 My question should have been rephrased "Is there a reason remove is called at all, or is it unneccessary due to ...?", the rest was more fluff about that it probably doesn't matter about what the video is about.
This fundamentally breaks a foundation of HTML: it's hierarchy
It feels reasonable right now because of what I would say was a bad fork in the road that was popularized and pushed by React. That is ignoring the browser standards and treating the browser as the platform you use to deliver applications.
It has benefits for sure but it also comes at a cost that I don't think is worth it. The open web.
Now we need a way to let contexts menus beign rendered outside of parents with overflow, this would kill the rest of portaling mess.
Hey Theo!
do we have any video on 'Dev Containers', couldn't find one in your channel.
would like to know your opinion on it.
Please tell me there will be moveAfter and moveInto equivalents... It's all nice and everything but I can instantly see people spamming anchor elements to move other elements against...
This is pretty cool and looks like it will fix a bunch of annoying behavior in frameworks. Also the flag is already in stable chrome.
What if you snapped your fingers before the ad, then have the quirky nerdy smokes sfx like the old days? I think it would fit quite nicely
I'm thinking of making a software product just to be advertised in a Theo's video
Did you create the twitch portal stuff yourself? I thought you mentioned that you used react-reverse-portal
Thats neat, i had some really weird workaround for this before... for example not reparent it but move the position and calculate the absolute position.
Horrible hack, but it looks good enough
I will do something like this when asked to & only when asked, but will remember it at that time. Extremely since it is not in browsers yet.
By separating state from rendering this is moot. I've been able to do this for years without new APIs.
Oh, like GlobalKey in Flutter! Or like normal keys if the hierarchy doesn't change.
react portals the ocky way
Am I wrong or this is not an API but just a method?
Why only "before"? Where is after?
Why not prependChild?
Wait that's just crazy
gdi why'd you have to hit me with that 25 and older
This is so cool
19% of react devs go to primeagen to learn about react😂
if the video was muted why i can heard it in my head?
also, this new feature is sweet
I want to reparent! @Theo, will you be my new dad?
In on the dot
Safari can't createWritable().
I swear this is already a thing with JQuery no? Or am I trippin...
I've heard you say you are color blind and you proved it calling that color blue instead of green haha
What does this have to do with React?? Man, React people always talk like everyone is using it..
Over 50% of frontend jobs are in React my man. Not everyone, but it's a very relevant example when new APIs are released.
@@t3dotgg I don't mind the example you showed being for React. I guess I was just excited to see a video about a cool new browser API and didn't get what I expected
You can swap out React for any frontend framework here. The essence of what he's telling remains the same, without this API you have to keep the state of the nodes reactive (even stuff you may not necessarily need to be reactive) so a frontend framework can completely recreate this branch of the DOM elsewhere and make it appear as if it moved, Theos example was a good one in showcasing the benefit imo, this seemingly minor addition to the DOM api is actually huge!
React: its not fun to do.
vue: I can do this in a single line 😅 just wrap it in Teleport Component 😎.
htmx ftw
noice...
Ads banners will now became even more difficult to close, they can keep the close button anywhere now 😂
E
Please tackle accessibility proactively and don't just rely on customer feedback. Having a usable web, shouldn't require you to hit up devs all the time. Also good luck finding contact info if the site isn't accessible.
Never said you shouldn't be proactive! If you took that message from what I said here, you are part of why so many people get annoyed by accessibility advocates
third
You're doing too much at this point