Video wird geladen...

Video konnte nicht geladen werden

Zur Startseite

"How can I use server components for data fetching if all my components also need hooks or onClick?" Move the interactive part into a separate component

50,595 Aufrufe • vor 1 Jahr •via X (Twitter)

10 Kommentare

Profilbild von Alfredo Lopez
Alfredo Lopezvor 1 Jahr

FYI, you don’t need a whole component just for the onClick. Client components can also be just functions, so you can import/assign the onClick from a RSC just fine.

Profilbild von Phev
Phevvor 1 Jahr

While I love the simplicity of data fetching in server components, it is very annoying to make those extra data loader wrapper components for the real (interactive) components. It would be nice if one could have server and client components defined in the same file... (where one is just a simple wrapper to load the data on the server)

Profilbild von Alex Sidorenko
Alex Sidorenkovor 1 Jahr

My mindset reversed with RSC. I mostly feel like server components are the main thing, and the client components are just wrappers of interactivity.

Profilbild von Mubashir
Mubashirvor 1 Jahr

the best strategy is to move interactive components to separate components and mark them as client components with “use client”. you can still render server components as children of those client components as long as you are not directly importing them into the file that is marked with “use client”.

Profilbild von Alexander
Alexandervor 1 Jahr

What’s the extension to get that intellisense?

Profilbild von Daniel Dunderfelt
Daniel Dunderfeltvor 1 Jahr

Or just use react-query 😌

Profilbild von Steve
Stevevor 1 Jahr

What if the children needs props from their parent?

Profilbild von Víctor
Víctorvor 1 Jahr

I love your vids!

Profilbild von Alex Sidorenko
Alex Sidorenkovor 1 Jahr

🫡

Profilbild von Summit Avenue Web Solutions
Summit Avenue Web Solutionsvor 1 Jahr

I gotta ask how you’re hiding tailwind classes with little logo boi

Ähnliche Videos

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 Aufrufe • vor 2 Jahren