ホームページ > ウェブフロントエンド > Vue.js > ノードおよびlaravelプロジェクトの事前レンダリングされたvue.jsアプリケーション

ノードおよびlaravelプロジェクトの事前レンダリングされたvue.jsアプリケーション

青灯夜游
リリース: 2020-09-27 14:04:25
転載
2661 人が閲覧しました

ノードおよびlaravelプロジェクトの事前レンダリングされたvue.jsアプリケーション

サーバーサイド レンダリングは現在非常に人気があります。しかし、欠点がないわけではありません。プリレンダリングは代替手段であり、場合によってはその方が良い場合もあります。 vue.js アプリケーションをプリレンダリングする方法を見てみましょう。

この記事では、vue.js でプリレンダリングがどのように機能するかを調査し、2 つの例を見ていきます。1 つは node.js プロジェクト、もう 1 つは laravel プロジェクトです。

推奨される関連チュートリアル: node js チュートリアルvue.js チュートリアルlaravel チュートリアル

##1. サーバー側レンダリング

JavaScript ベースのアプリケーションの欠点の 1 つは、ブラウザーがサーバーから受け取るページが基本的に空であることです。 DOM は、JavaScript がダウンロードされて実行されるまで構築できません。

これは、ユーザーが何も表示されるまでに長く待たなければならないことを意味します。また、クローラーがページのコンテンツをすぐに表示できない場合、SEO に影響を与える可能性があります。

サーバーサイド レンダリング (SSR) は、サーバー上でアプリケーションをレンダリングすることで、ページの読み込み時に (JavaScript が実行される前であっても) クライアントが完全な DOM コンテンツを受信できるようにすることで、この問題を解決します。

ブラウザがサーバーからこれを受信する代わりに:

<head> ... </head>
<body>
<div id="app">
  <!--This is empty, Javascript will populate it later-->
</app>
</body>
ログイン後にコピー

SSR を使用すると、完全なコンテンツ ページを受信します:

<head> ... </head>
<body>
<div id="app">
  <div class="container">
    <h1>Your Server-Side Rendered App</h1>
    <div class="component-1">
      <p>Hello World</p>
      <!--etc etc. This was all rendered on the server-->
</app>
</body>
ログイン後にコピー

サーバー側レンダリングの欠点

  • アプリケーションはサーバー上で実行可能である必要があるため、コードを「ユニバーサル」になるように設計する必要があります。つまり、コードを参照できるようにする必要があります。サーバーとノードサーバー。


  • アプリケーションはサーバーへのすべてのリクエストで実行されるため、従来のような負荷がかかり、応答が遅くなります。キャッシュを使用すると、この状況を部分的に軽減できます。

  • SSR は Node.js でのみ実行できます。メイン バックエンドが Laravel、Django などの場合、SSR を処理するためにメイン バックエンドでノード サーバーを実行する必要があります。

2. プリレンダリング

もう 1 つあります。空のページの問題を解決する 1 つの方法は、プリレンダリングです。このアプローチを使用すると、アプリケーションをデプロイする前に実行し、ページ出力をキャプチャして、HTML ファイルをキャプチャされた出力で置き換えます。


これは基本的に SSR と同じ概念ですが、ライブサーバーではなく開発環境に事前にデプロイされる点が異なります。

プリレンダリングは通常、PhantomJS などのヘッドレス ブラウザを使用して実行され、Webpack、Gulp などを使用してビルド フローに統合できます。

プリレンダリングの利点

  • 追加のサーバー負荷がないため、 SSR よりも高速かつ安価です

  • 実稼働環境のセットアップとアプリケーション コードが単純であるため、エラーが発生しにくくなります

  • Node.js 運用サーバーは必要ありません

プリレンダリングの欠点