Comprendre l'hydratation partielle dans Gatsby 5

Au moment d'écrire ces lignes, la dernière version de Gatsby v5 est livrée avec une hydratation partielle. Toujours en version bêta, l'hydratation partielle vous permet d'ajouter de manière sélective de l'interactivité à des applications entièrement statiques, améliorant ainsi les performances frontales tout en conservant les avantages des applications côté client.

Quand et comment utiliser Gmail hors ligne dans les applications et les sites Web basés sur React Tout le code JavaScript doit être téléchargé avant que la page ne devienne interactive, ce qui affecte particulièrement la mesure du temps d'interaction (TTI). Mais grâce à l'hydratation partielle de Gatsby, comment limiter les appels vocaux et les messages vocaux sur Telegram Les développeurs ne peuvent désormais hydrater que le code JavaScript nécessaire aux composants React, en réduisant la taille du bundle JavaScript et en améliorant la vitesse des pages.

Dans React, l'hydratation est le processus d'ajout de l'état de l'application et de l'interactivité au HTML rendu par le serveur à l'aide de JavaScript côté client. Comment effacer ou désactiver la liste des documents récents dans Microsoft Word Gatsby réalise une hydratation partielle en exploitant les composants du serveur React pour générer la sortie des composants du serveur, en commençant au niveau de la page jusqu'aux composants individuels. Dans cet article, Comment configurer et utiliser Snapchat sur le Web, nous explorerons Gatsby et l'hydratation partielle dans une application React.

  • La motivation derrière l'hydratation partielle

  • Que sont les composants interactifs ?

  • Comment utiliser l'hydratation partielle à Gatsby

  • Problèmes connus avec la bibliothèque de styles d'hydratation partielle Plugin Gatsby hors ligne

La motivation derrière l'hydratation partielle

La plupart des sites Gatsby sont basés sur le contenu, et comment convertir une feuille de calcul Excel en un document Google Sheets ne nécessite que quelques sections avec lesquelles interagir. Cependant, pour que les événements de clic, les effets et les changements d'état fonctionnent correctement, nous devons télécharger le JavaScript qui gère ces événements. Malheureusement, le fait de naviguer anonymement sur Reddit entraîne le téléchargement de grandes quantités de code JavaScript inutilisé, ce qui rend votre site plus lent et plus coûteux. Ici, une hydratation partielle est pratique.

Selon la documentation de Gatsby, l'hydratation partielle est utile pour les pages avec des composants interactifs, dont certains nécessitent une interaction sur la page, tandis que d'autres peuvent être rendus de manière statique, par exemple Comment activer et désactiver le mode focus dans Microsoft Word avec beaucoup de statique contenu et certaines pages de produits avec des formulaires et des boutons interactifs.

Jetez un oeil à l'image ci-dessous du site Gatsby. Il explique la différence entre partiellement hydraté et entièrement hydraté.

Dans cette page fictive, les composants sont majoritairement statiques, à l'exception du carrousel qui est un composant interactif. Généralement, lorsque cette page est chargée, nous demandons le code JavaScript pour les parties statiques et inutiles du site. Cependant, pour une hydratation partielle, comment se déconnecter de tous les appareils sur Spotify à la fois Nous ne demandons que le code JavaScript pour le composant interactif :

Que sont les composants interactifs ?

Les composants interactifs sont des composants qui contiennent useEffect, useState Comment mettre en évidence les doublons dans Excel : 2 méthodes simples , createContext ou des gestionnaires d'événements. Les composants de classe ne sont pas compatibles avec les composants serveur et doivent également être marqués comme interactifs.

Comment utiliser l'hydratation partielle à Gatsby

让我们通过一个示例来学习如何使用部分水合。如何在 Outlook 和 Gmail 中自动抄送或密件抄送自己首先,安装最新版本的 Gatsby 和实验版本的 如何在您的 Google 帐户中添加或删除受信任的设备React 和:react-dom

npm install gatsby@next react@experimental react-dom@experimental

接下来,继续并启用文件PARTIAL_HYDRATION中的如何在 Discord 上让某人成为服务器管理员或所有者标志:gatsby-config

//gatsby.config.js

flags: {

PARTIAL_HYDRATION: true,

},

默认情况下,Gatsby 5 将每个组件都视为服务器组件,如何为您的 Google 帐户启用双因素身份验证或两步验证从顶级页面开始并为每个页面生成 React Server Components (RSC) 文件。因此,要告诉 Gatsby 为组件启用部分水合作用,如何使用星标在 Gmail 中组织您的电子邮件您必须将指令添加"use client"到组件顶部,这是一个 RSC 约定:

// Component.js

"use client";

export function MyInteractiveComponent() {

const [myState, setState] = useState(null);

useEffect(() => { setTimeout(() => setState(‘interactive’) }, 3000)

return <div>{myState}</div>

}

有了"use client"指令,如何删除 iPhone、Android 或 PC 上的 Telegram 联系人组件将成为一个特殊的引用对象。该对象不能在该文件中直接访问,但可以像普通组件一样传递到 React 中。然后 React 将知道将该引用对象发送到客户端,然后客户端将在服务器上呈现为客户端组件。

您可以在Partial Hydration Starter GitHub 存储库中查看实现部分水合的完整示例。如果您导航到该文件,如下所示,如何在Zoom中模糊背景您可以看到一个客户被部分水化的快速示例:src/components/demo.js

/**

* To mark a component as client side, you add the "use client" directive.

* @see {@link https://github.com/reactjs/rfcs/blob/serverconventions-rfc2/text/0000-server-module-conventions.md}

*/

"use client"

import React, { useCallback, useState } from "react"

export function Demo() {

const [counter, setCounter] = useState(0)

const onClick = useCallback(() => {

setCounter(counter => counter + 1)

}, [])

return (

<div style={ { marginTop: "10px", marginBottom: "10px" }}>

<p style={ { margin: 0 }}>Current counter: {counter}</p>

<button onClick={onClick}>Add counter</button>

</div>

)

}

在上面的代码块中,我们有一个带有按钮的简单组件,如何更改 Amazon Prime Video 上的个人资料图标该按钮将使用useState. 该组件是交互式的,因为它使用useState. 该组件被导入并在文件中使用,如何让 Microsoft Outlook 朗读电子邮件如下所示:src/pages/using-partial-hydration.js

import * as React from "react"

import { Link } from "gatsby"

import Layout from "../components/layout"

import Seo from "../components/seo"

import { Demo } from "../components/demo"

function usingPartialHydration() {

return (

<Layout>

<h1>

Gatsby supports <b>Partial Hydration</b>

</h1>

<p>

You can now mark components as client side. This will reduce Javascript

shipped to the user.

</p>

<p>

The component below is such a component, if you check the Network Tab

after a "gatsby build". You will see that we only load the component

code and non of the layout

</p>

{/* Usage of the client component */}

<Demo />

<p>

Checkout <a href="the" target="_blank">https://gatsby.dev/v5-partial-hydration">the RFC</a>{" "}

to learn more.

</p>

<Link to="/">Go back to the homepage</Link>

</Layout>

)

}

export const Head = () => <Seo title="Using TypeScript" />

export default usingPartialHydration

该page组件主要由内容填充页面组成,如何使用 Google 活动控件访问和管理您的 Google 活动组件除外Demo。当 Gatsby 尝试构建此页面时,它将为该页面生成一个 RSC 文件。它不是page在浏览器中获取组件 JavaScript 文件,如何管理您的 Google 帐户中的个人信息而是请求一个文件。JSON 文件是对 UI 的描述,任何客户端组件都作为捆绑引用包含在内,以获取组件的实际代码。page-data-rsc.json

现在,部分水合作用仅在您为生产而构建时才有效,如何在桌面和移动设备上更改 Google 文档中的边距即gatsby buildor gatsby serve,而不是gatsby develop。当您运行gatsby build构建生产环境时,如何在移动设备和桌面设备上关闭 Reddit 通知您应该在命令输出中看到以下几行,这表示客户端组件在生产构建过程中被部分水合:

success Building Partial Hydration renderer - 0.530s

...

success Building partial HTML for pages - 0.040s - 6/6 149.35/s

部分水合作用的已知问题

在撰写本文时,Gatsby 中的部分水化仍处于测试阶段。如何在 Discord 上启用或禁用慢速模式让我们回顾一下您可能会遇到的部分水合作用的一些当前已知问题。

样式库

当启用部分水合作用时,样式库喜欢emotion和目前不工作。在撰写本文时,不支持 React 服务器组件。styled-components

gatsby-plugin-offline

用于使 Gatsby 如何在应用程序和浏览器中获取 Reddit 视频的声音站点离线工作并且更能抵抗不良网络连接。在 partial hydration 的 beta 阶段,不支持,并且有报道称 Gatsby 站点无法构建。gatsby-plugin-offlinegatsby-plugin-offline

结论

为您的 Gatsby 站点设置部分水合将带来良如何在 TikTok 上取消关注:2 种快速方法好的用户体验并显着提高页面加载速度。向客户端发送较少的 JavaScript 代码的结果将直接影响您的性能得分,最显着的是交互时间测量。

请务必记住,部分水合作用仍处于测试阶段。因此,在生产中使用它需要您自担风险,因为未来可能会有一些重大变化。

Je suppose que tu aimes

Origine blog.csdn.net/weixin_47967031/article/details/130052586
conseillé
Classement