ギャツビー 5 の部分的な水分補給を理解する

これを書いている時点で、Gatsby v5 の最新バージョンには部分的な水分補給が付属しています。まだベータ版ですが、部分的なハイドレーションを使用すると、完全に静的なアプリケーションに対話性を選択的に追加して、クライアント側アプリケーションの利点を維持しながらフロントエンドのパフォーマンスを向上させることができます。

React ベースのアプリや Web サイトでオフライン Gmail を使用するタイミングと方法すべての JavaScript コードは、ページがインタラクティブになる前にダウンロードする必要があります。これは、特に対話時間 (TTI) メトリックに影響します。しかし、Gatsby の部分的なハイドレーションのおかげで、Telegram 開発者が音声通話と音声メッセージを制限する方法は、 React コンポーネントに必要な JavaScript コードのみをハイドレートできるようになり、JavaScript バンドルのサイズが縮小され、ページの速度が向上しました。

React では、ハイドレーションとは、クライアント側の JavaScript を使用して、サーバーでレンダリングされた HTML にアプリケーションの状態と対話性を追加するプロセスです。Microsoft Word で最近使用したドキュメント リストをクリアまたは無効にする方法Gatsby は、React サーバー コンポーネントを利用してサーバー コンポーネントの出力を生成し、ページ レベルから個々のコンポーネントに至るまで、部分的なハイドレーションを実現します。この記事「Web で Snapchat をセットアップして使用する方法」では、 React アプリでの Gatsby と部分的な水分補給について説明します。

  • 部分的な水分補給の背後にある動機

  • インタラクティブなコンポーネントとは

  • ギャツビーでの部分水分補給の使い方

  • Partial Hydration Style Library Gatsby Plugin Offline の既知の問題

部分的な水分補給の背後にある動機

ほとんどの Gatsby サイトはコンテンツ ベースであり、Excel スプレッドシートを Google スプレッドシート ドキュメントに変換する方法は、いくつかのセクションを操作するだけで済みます。ただし、クリック イベント、効果、および状態の変更が適切に機能するためには、これらのイベントを処理する JavaScript をダウンロードする必要があります。残念ながら、Reddit を匿名で閲覧すると、未使用の JavaScript コードが大量にダウンロードされ、サイトが遅くなり、コストが高くなります。ここでは、部分的な水分補給が役立ちます。

Gatsby のドキュメントによると、部分的なハイドレーションはインタラクティブなコンポーネントを含むページに役立ちます。その一部はページ上で操作する必要がありますが、他のコンポーネントは静的にレンダリングできます。インタラクティブなフォームとボタンを備えたコンテンツと一部の製品ページ。

ギャツビーのサイトから下の画像を見てください。部分水和と完全水和の違いを説明します。

この架空のページでは、インタラクティブなコンポーネントであるカルーセルを除いて、ほとんどのコンポーネントは静的です。通常、このページが読み込まれると、サイトの静的部分や不要な部分の JavaScript コードが要求されます。ただし、部分的なハイドレーションの場合、Spotify ですべてのデバイスから一度にログアウトする方法インタラクティブ コンポーネントの JavaScript コードのみを要求します。

インタラクティブなコンポーネントとは

インタラクティブ コンポーネントは、useEffect、useState を含むコンポーネントです。Excelで重複を強調表示する方法: 2 つの単純なメソッド、createContext、またはイベント ハンドラー。クラス コンポーネントはサーバー コンポーネントと互換性がないため、対話型としてもマークする必要があります。

ギャツビーでの部分水分補給の使い方

让我们通过一个示例来学习如何使用部分水合。如何在 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 代码的结果将直接影响您的性能得分,最显着的是交互时间测量。

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

おすすめ

転載: blog.csdn.net/weixin_47967031/article/details/130052586