NextJs 13 – using Server Components in Client Components

We cannot directly import a server component into a client component in NextJs 13.

// ⛔️ this will not work !!!

'use client';

import ReadFromDataBaseComponent from './ReadFromDataBaseComponent';

export default function ClientComponent() {
  // do something with ReadFromDataBaseComponent
}

The reason why we cannot import directly a server component into a client component is that the server component can have code for things like reading/writing files or databases that are only accessible on the server side.

To be able to use a server component in a client one we first need to render the server component and include just the resulting HTML in the client component. For this we need to wrap the Server component as a child (or property) for the Client component:

// 👍 this works

export default function ClientComponent({ children }) {
  // do ClientComponent logic stuff here

  return (<>
    // ...
    {children}
  </>)
}

And now we can write in a NextJs 13 page:

import ClientComponent from "./ClientComponent";
import ReadFromDataBaseComponent from "./ReadFromDataBaseComponent";
```jsx
export default function Page() {
  return (
    <ClientComponent>
        // we will not have any server-side code here
        <ReadFromDataBaseComponent />
    </ClientComponent>
  );
}

The official documentation link on this subject.

📖 50 Javascript, React and NextJs Projects

Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects with project briefs and wireframes! Choose from 8 project categories and get started right away.

📖 50 Javascript, React and NextJs Projects

Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects with project briefs and wireframes! Choose from 8 project categories and get started right away.


Leave a Reply

Your email address will not be published. Required fields are marked *

Home Screencasts Best of Newsletter Search X

📖 50 Javascript, React and NextJs Projects

Hi friend! Before you go, just wanted to let you know about the 50 Javascript, React and NextJs Projects FREE ebook.

One of the best ways to learn is by doing the work. Choose from 8 project categories and get started right away:

  • Business & Real-World
  • Games & Puzzles
  • Fun & Interesting
  • Tools & Libraries
  • Personal & Portfolio
  • Project Add-Ons
  • Productivity
  • Clones

Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects complete with project briefs and wireframes!

Keep building and level up! Get all projects as an ebook right to your inbox!

X