Next.js 13 での「Use Client」ディレクティブの仕組み
P粉044526217
P粉044526217 2023-08-26 21:55:31
0
1
500

Next.js 13.4 と新しい app/ ディレクトリを使用したサーバーサイド レンダリングについて学ぼうとしています。私が理解しているところによると、すべてのコンポーネントはデフォルトで server コンポーネントです (つまり、サーバー側でレンダリングされます)。

ただし、'use client' ディレクティブを使用して、コンポーネントを強制的に client コンポーネントにすることができます。

以下では、単純な「Hello World」コンポーネントを、最初にサーバー コンポーネントとして、次にクライアント コンポーネントとしてセットアップしました。それぞれのケースで、ページのソース コードを比較します。

src/app/page.js(サービス务器コンポーネント)

デフォルト関数 Home() をエクスポート { 戻る ( <メイン> 

Hello World

) }

クローム>查看页面源代网

 
      <頭>
        次のアプリを作成    

       <本体>
        <メイン> 

Hello World

src/app/page.js(客户端组件)

'クライアントを使用'; デフォルト関数 Home() をエクスポート { 戻る ( <メイン> 

Hello World

) }

Chrome > 查看页面源代码

    Create Next App    
  

Hello World


ゲスト端末のコンポーネントが HTML をすでに汚染しているため、私たちは考えていますが、「Hello World」は React Root DOM ポイントに似たものであり、基本的には空であると考えています。 div 等にいくつかの HTML を埋め込んでいます。私はここに何か足りませんか?

P粉044526217
P粉044526217

全員に返信 (1)
P粉268654873

######ここから######

サーバー コンポーネントとクライアント コンポーネントは、静的レンダリング中に異なる方法でレンダリングされます:

クライアント コンポーネントの HTML と JSON は事前にレンダリングされ、サーバーにキャッシュされます。キャッシュされた結果は、ハイドレーションのためにクライアントに送信されます。

サーバー コンポーネントは React によってサーバー上でレンダリングされ、そのペイロードは HTML の生成に使用されます。クライアント側でコンポーネントを混合するためにも同じレンダリング負荷が使用されるため、クライアント側で JavaScript は必要ありません。
  • さて、
  • サーバー コンポーネントとクライアント コンポーネント
  • を使用すると、React はクライアント
とサーバー

の両方でレンダリングできるようになります。これは、コンポーネント レベルでレンダリング環境を選択できることを意味します。デフォルトでは、app

ルーターは

サーバー コンポーネントを使用するため、サーバー上でコンポーネントを簡単にレンダリングし、クライアントに送信される JavaScript の量を減らすことができます。

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!