šŸ“• Build AI Agents using LangGraph.js is now out!

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.

šŸ“– Build a full trivia game app with LangChain

Learn by doing with this FREE ebook! This 35-page guide walks you through every step of building your first fully functional AI-powered app using JavaScript and LangChain.js

šŸ“– Build a full trivia game app with LangChain

Learn by doing with this FREE ebook! This 35-page guide walks you through every step of building your first fully functional AI-powered app using JavaScript and LangChain.js


One Reply

Leave a Reply

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