インターネットの急速な発展に伴い、Web アプリケーションは従来の複数ページのアプリケーションから単一ページのアプリケーションに徐々に変化してきました。シングル ページ アプリケーション (SPA) は、よりスムーズで高速なインタラクティブ エクスペリエンスをユーザーに提供し、Ajax やその他のテクノロジを使用してページ コンテンツをシームレスに更新し、動的ルーティングなどの高度な機能を実装できます。この記事では、ThinkPHP6 を使用して基本的なシングルページ アプリケーションを実装する方法を紹介します。
まず、ThinkPHP6 フレームワークをインストールする必要があります。 Composer からインストールできますが、具体的な方法は以下の通りです:
コマンドラインウィンドウで、プロジェクトが存在するディレクトリを入力し、次のコマンドを入力します:
composer create-project topthink/think your_project_name
その中で、 your_project_name はプロジェクトの名前で、自分で設定できます。
インストールが完了すると、プロジェクト ディレクトリに public
という名前のフォルダーが見つかります。このフォルダーには、プロジェクトのエントリ ファイルindex.php といくつかの静的リソース ファイルが含まれています。
次に、SPA アプリケーションのエントリ ページとして機能する基本的な HTML ファイルを作成する必要があります。パブリック フォルダーに、次の内容を含む index.html
という名前のファイルを作成します。
<!DOCTYPE html> <html> <head> <title>SPA应用</title> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> </head> <body> <div id="app"> <!-- 这里放置SPA应用的内容 --> </div> <script src="/static/js/vue.js"></script> <script src="/static/js/axios.js"></script> <script src="/static/js/app.js"></script> </body> </html>
このページでは、フロントの実装に使用される Vue.js および Axios.js JavaScript ライブラリを紹介しました。 -データの対話とビューのレンダリングを終了します。同時に、SPA アプリケーションのコンテンツをレンダリングするために、ページ上に ID app
を持つ div を定義しました。
ThinkPHP6 では、ルーティング構成ファイルは app/route
ディレクトリにあります。このディレクトリに router.php
という名前の新しいファイルを作成し、次の構成を追加する必要があります。
use thinkacadeRoute; Route::get('/', function () { return view('index'); });
このコードの機能は、Web サイトのルート ディレクトリ リクエストを # にリダイレクトすることです。 ##index.html ページ。ここでは、ThinkPHP6 フレームワークによって提供されるルーティング ショートカット関数
Route::get() を使用して、匿名関数を通じて
index.html ページを返します。
Route::resource() メソッドを通じて、RESTful 仕様に準拠した API インターフェースを自動的に作成できます。次のルーティング構成を
router.php ファイルに追加します。
use appcontrollerBlog; Route::resource('blog', Blog::class);
blog という名前の API インターフェイスを作成することです。対応するコントローラーは次のとおりです。
アプリコントローラーブログ。ここの
Blog コントローラーは自分で作成する必要があります。コマンド ラインを使用してブログ コントローラーを簡単に生成できます。
php think make:controller Blog
app/controller ディレクトリ ドキュメントに
Blog.php という名前のコントローラーを作成します。これで、
Blog コントローラーでさまざまなリクエスト メソッドを定義し、SPA アプリケーションによって送信された API リクエストを処理できるようになりました。たとえば、
index という名前のメソッドを追加します。
namespace appcontroller; use thinkacadeDb; class Blog { public function index() { $result = Db::table('blog')->select(); return json($result); } }
Db::table() メソッドを使用してデータベースを操作します。
index.html ページに JavaScript コードを記述して、データのレンダリングとインタラクションを完了する必要があります。
publicstaticjs ディレクトリに、
app.js という名前のファイルを作成し、次のコードを追加します。
const app = new Vue({ el: '#app', data: { blogs: [] }, created: function () { axios.get('http://localhost/blog') .then(response => { this.blogs = response.data; }) .catch(function (error) { console.log(error); }); } });
data 属性を使用してブログ データを保存します。同時に、
created ライフ サイクル関数を通じてデータを初期化し、 Axios.js BlogデータのGETメソッド。
php think run
http://localhost と入力すると、SPA アプリケーションの効果を確認できます。
index.html ページに導入し、API インターフェイスと JavaScript コードを作成することで、Web アプリケーションで単一ページの動的な対話を実現できます。 ThinkPHP6 フレームワークは、豊富なルーティングおよびデータベース操作メソッドを提供し、高品質な Web アプリケーションを迅速に開発できます。
以上がThinkPHP6 を使用してシングルページアプリケーションを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。