Laravel は、ルーティング、テンプレート エンジン、データベース ORM など、Web アプリケーションを構築するためのツールと機能の完全なセットを提供する人気の PHP フレームワークです。ただし、コンテンツが豊富な Web アプリケーションを構築する場合、フロントエンドのレンダリング パフォーマンスは無視できない問題です。従来のフロントエンドとバックエンドの分離ソリューションでは、多くの場合、AJAX やその他のテクノロジを介してサーバーにデータをリクエストし、JavaScript を介してデータを DOM にレンダリングする必要があります。これは、Web サイトのパフォーマンスと SEO にある程度の影響を与えます。サーバーサイド レンダリングでは、サーバー側でデータを HTML にレンダリングできるため、クライアントでの JavaScript 操作が軽減され、Web サイトのパフォーマンスと SEO 効果が向上します。この記事では、Laravelが提供するサーバーサイドレンダリングソリューションの使い方を紹介します。
Laravel は、独立したサーバー側レンダリング パッケージである Laravel View を提供します。これは、特にビューのレンダリングに使用され、利用可能な一連の機能を提供します。サーバー側のキャッシュ メカニズムの柔軟な構成により、レンダリング パフォーマンスを大幅に最適化できます。 Laravel アプリケーションでのサーバーサイド レンダリング ソリューションの使用も非常に簡単で、composer を通じて Laravel View パッケージをインストールし、アプリケーションにサービス プロバイダーを登録するだけです。
まず、composer.json ファイルに次の依存関係を追加する必要があります:
"require": { "illuminate/view": "^5.6|^6.0|^7.0|^8.0" }
次に、アプリケーションの config/app.php ファイルに次のコードを追加して、サービス プロバイダーを登録します。
'providers' => [ //... Illuminate\View\ViewServiceProvider::class, //... ],
サーバー側のレンダリング シナリオでは、データとビューを統合するために、ビューを作成し、データをビューに渡す必要があります。サーバー側でHTMLに変換します。 Laravelでは、Bladeテンプレートファイルを作成することでビューを定義できます。たとえば、ローカル ビュー /home.blade.php を作成します。
<!DOCTYPE html> <html> <head> <title>{{$title}}</title> </head> <body> <h1>{{$content}}</h1> </body> </html>
上記のビューは、Blade 構文を通じて HTML ドキュメント構造を定義し、変数 $title と $content を使用してページ タイトルとコンテンツをレンダリングします。 。
Laravel View パッケージを使用したビューのレンダリングは非常に簡単で、Laravel View が提供するクラス ライブラリを使用し、ビュー名とプロパティを渡すだけです。ビューに必要なデータ。サーバー側でレンダリングされた HTML が返されます。例:
use Illuminate\Support\Facades\View; class HomeController extends Controller { public function index() { $title = 'Laravel服务端渲染'; $content = '服务端渲染是一种优化前端性能和SEO效果的方案。'; $html = View::make('home', compact('title', 'content'))->render(); return response($html); } }
上記のコードは、まずビュー名とビューに必要なデータを View::make() メソッドに渡し、サーバー側でレンダリングされたビュー HTML を生成します。 HTML はクライアントへの応答として直接返すことができます。
サーバー側のレンダリングは多くのサーバー リソースを消費します。ユーザーの数が多い場合、パフォーマンスを最適化するためにキャッシュが必要になる場合があります。 Laravel View は、レンダリングされたビューをファイル システム、Memcached、Redis などのキャッシュ ストレージにキャッシュできる、柔軟に構成可能なキャッシュ メカニズムを提供します。たとえば、ビューをファイル システムにキャッシュする場合、次のコードを使用できます。
use Illuminate\Contracts\Cache\Factory as CacheFactory; class HomeController extends Controller { public function index(CacheFactory $cache) { $title = 'Laravel服务端渲染'; $content = '服务端渲染是一种优化前端性能和SEO效果的方案。'; return $cache->remember('home', 60, function () use ($title, $content) { $html = View::make('home', compact('title', 'content'))->render(); return response($html); }); } }
上記のコードは、まず依存関係注入を通じて CacheFactory インスタンスを取得し、次にキャッシュの remember() メソッドを使用します。サーバーによってレンダリングされたビューをキャッシュするインスタンス。サーバー リソースを節約するのに 60 秒。
この記事では、ビューの作成、ビューのレンダリング、キャッシュの設定など、Laravel View パッケージが提供するサーバー側レンダリング ソリューションの使用方法を紹介します。サーバーサイド レンダリングは、フロントエンドのパフォーマンスと SEO 効果を最適化するためのソリューションであり、Web サイトのユーザー エクスペリエンスと検索エンジンのランキングを大幅に向上させることができます。 Laravel View パッケージを使用すると、サーバー側レンダリングを簡単に実装し、Laravel アプリケーションのパフォーマンスとユーザー エクスペリエンスを最適化できます。
以上がLaravelが提供するサーバーサイドレンダリングソリューションの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。