ThinkPHP は、Web アプリケーションを迅速に開発できるように設計された、非常に人気のある PHP 開発フレームワークです。 ThinkPHP を使用して Web アプリケーションを開発する場合、単一ページの公式 Web サイトを作成する必要がある場合があります。この記事では、ThinkPHP を使用してシングルページの公式 Web サイトをセットアップする方法を紹介します。
1. シングルページ アプリケーションとは何ですか?
シングルページ アプリケーション、英語では Single-Page Application、SPA と呼ばれ、Ajax と HTML5 をベースにした技術の一種です。 、ページのコンテンツの一部を動的にロードして、Web アプリケーションのユーザー エクスペリエンスを最適化します。従来のアプリケーションとは異なり、シングルページ アプリケーションには HTML ページが 1 つだけ含まれており、ページ コンテンツは JavaScript を通じて動的に読み込まれ、コンテンツの表示とページ間の切り替えを実現します。
2. シングルページ アプリケーションの作成
ThinkPHP でシングルページ アプリケーションを作成する方法は多数あり、この記事ではそのうちの 1 つを紹介します。
1. コントローラーの作成
ThinkPHP では、すべてのビジネス ロジックがコントローラーに実装されます。したがって、アプリケーションのコントローラー内にシングル ページ アプリケーションのコントローラーを作成する必要があります。 SinglePageController というコントローラーを作成します。
<?php namespace app\index\controller; use think\Controller; class SinglePageController extends Controller { public function index() { return view(); } }
上記のコードでは、Controller クラスを継承する SinglePageController クラスを定義し、ページの読み込み操作を実行するインデックス メソッドを定義します。
2. ビューの作成
ThinkPHP のビュー エンジンを通じて単一ページのアプリケーション ビューを作成する必要があります。 ThinkPHP のビュー エンジンを使用すると、HTML に PHP コードを埋め込んでビューの再利用とページの分離を実現できます。
<!-- singlepage.html --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>单页应用</title> <script src="//cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> </head> <body> <div id="nav"> <ul> <li><a href="#home">首页</a></li> <li><a href="#about">关于我们</a></li> <li><a href="#product">产品介绍</a></li> <li><a href="#contact">联系我们</a></li> </ul> </div> <div id="content"></div> <script type="text/javascript"> $(document).ready(function(){ $(window).bind('hashchange', function() { var url = window.location.hash.slice(1); $('#content').load(url + '.html'); }); $(window).trigger('hashchange'); }); </script> </body> </html>
上記のコードでは、ID nav のナビゲーション バーと ID content のコンテンツ領域を作成しました。 JavaScript で hashchange イベントをバインドしました。ハッシュが変更されるたび (つまり、ナビゲーション バーのリンクが変更されるとき)、Ajax を通じて対応する HTML ページをコンテンツ領域に読み込みます。
注: シングルページ アプリケーションのコンテンツは、すべてを 1 ページに同時に表示するのではなく、複数の HTML ページで構成する必要があります。
3. ルーティング ルールを定義する
SinglePageController クラスは、index メソッドを通じて単一ページ アプリケーションのビューをレンダリングするため、ルーティング ルールで singlepage という名前のルーティング ルールを定義する必要があります。 ##
<?php use think\Route; // 单页应用路由 Route::rule('singlepage/:id','index/SinglePage/index');
以上がthinkphp で単一ページを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。