Maison > interface Web > js tutoriel > le corps du texte

Comprendre les composants du serveur React : un guide pratique

Barbara Streisand
Libérer: 2024-10-17 18:46:02
original
243 Les gens l'ont consulté

Understanding React Server Components: A Practical Guide

React Server Components (RSC) are revolutionizing how we approach server-side rendering in React applications. This guide will walk you through what they are, their benefits, and how to implement them in your projects.

What Are React Server Components?

React Server Components are a new type of component that runs exclusively on the server. They render on the server and send their output to the client, combining the benefits of server-side rendering with client-side React interactivity.

Key features:

  • Server-side execution
  • Direct access to server resources
  • No increase in client-side bundle size
  • Cannot have state or use browser-only APIs

Benefits of React Server Components

  1. Improved Performance: Faster initial loads and smaller client bundles.
  2. Enhanced SEO: Server-rendered content is more easily indexable.
  3. Simplified Data Fetching: Direct access to server-side data sources.
  4. Improved Security: Sensitive operations stay on the server.

Setting Up React Server Components

As of 2024, React Server Components are best used with frameworks like Next.js. Here's a quick setup:

  1. Create a new Next.js project:
   npx create-next-app@latest my-rsc-app
   cd my-rsc-app
Copier après la connexion
  1. Choose to use the App Router when prompted.

  2. Create a Server Component in app/ServerComponent.tsx:

   async function getData() {
     const res = await fetch('https://api.example.com/data')
     return res.json()
   }

   export default async function ServerComponent() {
     const data = await getData()
     return <div>{data.message}</div>
   }
Copier après la connexion
  1. Use it in app/page.tsx:
   import ServerComponent from './ServerComponent'

   export default function Home() {
     return (
       <main>
         <h1>Welcome to React Server Components</h1>
         <ServerComponent />
       </main>
     )
   }
Copier après la connexion
  1. Run your application:
   npm run dev
Copier après la connexion

Implementing React Server Components

Let's create a more complex example - a blog post list fetching data from a CMS:

// app/BlogList.tsx
import { getBlogPosts } from '../lib/cms'

export default async function BlogList() {
  const posts = await getBlogPosts()

  return (
    <ul>
      {posts.map(post => (
        <li key={post.id}>
          <h2>{post.title}</h2>
          <p>{post.excerpt}</p>
        </li>
      ))}
    </ul>
  )
}

// app/page.tsx
import BlogList from './BlogList'

export default function Home() {
  return (
    <main>
      <h1>Our Blog</h1>
      <BlogList />
    </main>
  )
}
Copier après la connexion

In this example, BlogList fetches data directly from the CMS on the server, improving performance and simplifying the client-side code.

Advanced Patterns

1. Mixing Server and Client Components

// ClientComponent.tsx
'use client'

import { useState } from 'react'

export default function LikeButton() {
  const [likes, setLikes] = useState(0)
  return <button onClick={() => setLikes(likes + 1)}>Likes: {likes}</button>
}

// ServerComponent.tsx
import LikeButton from './ClientComponent'

export default function BlogPost({ content }) {
  return (
    <article>
      <p>{content}</p>
      <LikeButton />
    </article>
  )
}
Copier après la connexion

2. Streaming for Improved UX

import { Suspense } from 'react'
import BlogList from './BlogList'

export default function Home() {
  return (
    <main>
      <h1>Our Blog</h1>
      <Suspense fallback={<p>Loading posts...</p>}>
        <BlogList />
      </Suspense>
    </main>
  )
}
Copier après la connexion

3. Error Handling

'use client'

export default function ErrorBoundary({ error, reset }) {
  return (
    <div>
      <h2>Something went wrong!</h2>
      <button onClick={reset}>Try again</button>
    </div>
  )
}

// In your page file
import ErrorBoundary from './ErrorBoundary'

export default function Page() {
  return (
    <ErrorBoundary>
      <BlogList />
    </ErrorBoundary>
  )
}
Copier après la connexion

Conclusion

React Server Components offer a powerful approach to building performant, SEO-friendly, and secure web applications. They represent an exciting direction for React development, allowing for server-side data fetching and rendering while maintaining the interactivity of client-side React.

As you explore Server Components, remember they're not a replacement for client-side React, but a complementary technology. Use them where they make sense in your application architecture.

We encourage you to experiment with Server Components in your projects and stay tuned for further developments in this exciting space!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!