Video yükleniyor...

Video Yüklenemedi

Ana Sayfaya Dön

React tip: "use client" misconceptions (1/5) 🚫 You need to mark EVERY individual file with "use client" to ensure it is a Client Component. ✅ You only need to mark each client entry point ONCE. Modules imported into a "use client" file are already part of the client bundle....

157,319 görüntüleme • 2 yıl önce •via X (Twitter)

10 Yorum

Delba profil fotoğrafı
Delba2 yıl önce

React docs: They recently got a facelift with some diagrams and code playgrounds. Props to the React team 🫡

chan profil fotoğrafı
chan2 yıl önce

these visualizations are amazing, Delba!

Delba profil fotoğrafı
Delba2 yıl önce

Thank you!

Rotimi Best profil fotoğrafı
Rotimi Best2 yıl önce

Please give Delba a raise, she is a must keep in the React ecosystem now. These videos are so damn important right now.

Jan Nicklas profil fotoğrafı
Jan Nicklas2 yıl önce

in 4.js, it's not specified whether it is a client component directly. so to figure it out, a dev (or tool) needs to scan all imports across the entire codebase. is that really a good thing?

Delba profil fotoğrafı
Delba2 yıl önce

It's up to you. It's a bit like DRY, you can do it every time, but it's a bit heavy-handed to do it prematurely. I think we'll develop a feel for it.

janka profil fotoğrafı
janka2 yıl önce

hell yeah this is beautiful also i think blue should canonically be the color of client components! i tend to go client=blue & server=yellow but that can get a bit busy, the dimmed grey works much better here

Delba profil fotoğrafı
Delba2 yıl önce

Blue it is. It has been decided 🤝

Steven Tey profil fotoğrafı
Steven Tey2 yıl önce

I felt like I was in a Next.js-themed Minecraft server while watching this video – fantastic work!

Delba profil fotoğrafı
Delba2 yıl önce

Haha, cheers Steven! Congrats on getting engaged 🖤

Benzer Videolar

React tip: "use client" misconceptions (2/5) 🚫 "You cannot nest Server Components inside Client Components because "use client" turns everything into Client Components." ✅ We can pass the rendered result of Server Components to Client Components as props. Simple example: (Server Component) (Client Component) (Server Component) is designed for the client. It needs to instantly open and close when clicked. is designed for the server. It uses packages that don't work in the browser and needs to fetch data close to where it's stored without exposing credentials. So, how can we nest a component that uses server APIs inside a component that uses client APIs... without using `import`? React props to the rescue! --- (0:00) 1-4: Reminder: Importing code forms a module dependency graph. Adding dependencies to a server or client bundle. (0:23) 5-6: Reminder: Using components eventually forms a rendered component tree. (0:37) 9: Oh no! We get an error when trying to `import` a client API (useState) into a server module. (0:44) 10: We know the trick by now: Add "use client" to mark `2.js` as a client entry point. This moves the module to the client bundle and allows us to use client APIs like `useState.` (0:51) 11: But we get a new error! "use client" moved all imported dependencies into the client bundle, including our ORM package, which doesn't work in the browser. (0:59) 13: Let's refactor without changing our rendered component hierarchy. First, we move the `Cart` import to the parent file that imports `Modal`. This moves `Cart` outside the "use client" boundary and consequently the client bundle. (1:11) 15: Then, we pass down the rendered result of `Cart` as a prop to `Modal`. This allows `Cart` to be entirely rendered on the server as a Server Component before being passed down. `Modal` has no knowledge of what the `cart` prop is. Its only responsibility is placing whatever it receives into the `{cart}` slot. (1:15) 16: Finally, it's common to use the special `children` prop for a component's primary content. The key insight is that we were able to use props to retain our desired component hierarchy even though we changed our module dependency graph.

Delba

43,989 görüntüleme • 2 yıl önce