Server-side Component
Framework Next.js 13 Server-side Component
What do you need to do? | Server Component | Client Component |
---|---|---|
Fetch data. Learn more. | ✅ | API Fetch |
Access backend resources (directly) | ✅ | ❌ |
Keep sensitive information on the server (access tokens, API keys, etc) | ✅ | ❌ |
Keep large dependencies on the server / Reduce client-side JavaScript | ✅ | ❌ |
Add interactivity and event listeners (onClick(), onChange(), etc) | ❌ | ✅ |
Use State and Lifecycle Effects (useState(), useReducer(), useEffect(), etc) | ❌ | ✅ |
Use browser-only APIs | ❌ | ✅ |
Use custom hooks that depend on state, effects, or browser-only APIs | ❌ | ✅ |
Use React Class components | ❌ | ✅ |
Create a function that returns a Next.js Link component
with the desired props. For example:
// CommonComponent.js
import Link from 'next/link';
export const getLinkComponent = (props) => {
const {
href,
label
} = props;
return (
<Link href={href}>
<a>{label}</a>
</Link>
);
}
Reuse the create component on the same page
// page.js
import { getLinkComponent } from './CommonComponent';
export default function Page({
children
}) {
const myLinkComponent = getLinkComponent({
href: '/about',
label: 'About'
});
return (
<div>
<h1>Welcome to my page!</h1>
{myLinkComponent}
<h1>Welcome to my page!</h1>
{myLinkComponent}
</div>
);
}
Framework Next.js 13 Server-side Component
Framework Next.js 13 Client-side Component