Русский
Открыть в Telegram

Пост 5 заблуждений о React Server Components

9 июля 2024
З
Заметки про React
Ссылка
нажмите — покажем
5 заблуждений о React Server Components В React 19 представили большое архитектурное изменение: разделение на серверные и клиентские компоненты. Серверные компоненты выполняются только на сервере, и их код не попадает в клиентский бандл. Клиентские компоненты – обычные компоненты React, к которым уже все привыкли. Эта новая архитектура направлена на использование сильных сторон как на сервере, так и на клиенте. Возможно, некоторые поняли новую концепцию серверных компонентов неправильно и вот некоторые заблуждения о них: - Предпочитайте только серверные компоненты, а клиентские используйте редко. Это не так, потому что серверные компоненты не подходят для всех сценариев, особенно которые требуют интерактивности. Серверные компоненты – это новый тип компонентов, которые выполняются только на сервере, получают данные и рендерят их на сервере для повышения производительности. async function UserProfile({ userId }) { const response = await db.query('SELECT * FROM users WHERE id = ?', [userId]); const user = response.user; return ( <div> <h1>{user.name}</h1> <p>Email: {user.email}</p> </div> ); } - use client помечает клиентские компоненты, а use server помечает серверные компоненты. На самом деле директива use client помечает клиентские компоненты. Но директива use server не нужна, все компоненты по умолчанию являются серверными. - Каждый клиентский компонент должен иметь директиву use client. На самом деле достаточно объявить директиву use client один раз в корневом файле клиентского компонента. Все компоненты, определенные в этом файле, автоматически станут клиентскими. Сюда входят вложенные компоненты, утилиты и функции внутри файла. - Серверные компоненты не могут быть вложены в клиентские компоненты. Напрямую импортировать серверный компонент в клиентский нельзя. Но использовать серверный компонент внутри клиентского можно через проп, например, children: // ServerComponent.js function ServerComponent() { return <h1>Hello from the server</h1>; } // ClientComponent.js 'use client' function ClientComponent({ children }) { return ( <div> <p>This is a client component</p> {children} </div> ); } // Usage function App() { return ( <ClientComponent> <ServerComponent /> </ClientComponent> ); } https://www.builder.io/blog/nextjs-react-server-components
32 · 3.2K ·

Рядом в ленте

ЗЗаметки про ReactРелиз TypeScript 5.5 Вышел релиз новой версии TypeScript. Список основных изменений: - Предикаты выводимых типов (Inferred Type Predicates). Одно из главных измЗЗаметки про ReactЛенивое обнаружение роутов в React Router В новой минорной версии React Router 6.24 появилась возможность ленивого обнаружения роутов. С помощью метода unstable
это сообщение
ЗЗаметки про ReactСкрытые утечки памяти в React: как компилятор не спасет вас Кевин Шинер недавно писал про useCallback и утечки памяти. Если кратко, то там было написано о том, ЗЗаметки про ReactИзучите Suspense создавая хук useFetch В своем блоге Слава Князев поэтапно создал хук useFetch для демонстрации того, как работает Suspense. Также автор показал
ЗЗаметки про ReactЗаметки про React@ru_react_notes · канал · Технологии
3 412подписчиков491постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем