ホームページ > PHPフレームワーク > ThinkPHP > ThinkPHP6 を使用してシングルページアプリケーションを実装する方法

ThinkPHP6 を使用してシングルページアプリケーションを実装する方法

WBOY
リリース: 2023-06-20 16:29:46
オリジナル
1269 人が閲覧しました

インターネットの急速な発展に伴い、Web アプリケーションは従来の複数ページのアプリケーションから単一ページのアプリケーションに徐々に変化してきました。シングル ページ アプリケーション (SPA) は、よりスムーズで高速なインタラクティブ エクスペリエンスをユーザーに提供し、Ajax やその他のテクノロジを使用してページ コンテンツをシームレスに更新し、動的ルーティングなどの高度な機能を実装できます。この記事では、ThinkPHP6 を使用して基本的なシングルページ アプリケーションを実装する方法を紹介します。

  1. ThinkPHP6 のインストール

まず、ThinkPHP6 フレームワークをインストールする必要があります。 Composer からインストールできますが、具体的な方法は以下の通りです:

コマンドラインウィンドウで、プロジェクトが存在するディレクトリを入力し、次のコマンドを入力します:

composer create-project topthink/think your_project_name
ログイン後にコピー

その中で、 your_project_name はプロジェクトの名前で、自分で設定できます。

インストールが完了すると、プロジェクト ディレクトリに public という名前のフォルダーが見つかります。このフォルダーには、プロジェクトのエントリ ファイルindex.php といくつかの静的リソース ファイルが含まれています。

  1. 基本ページの作成

次に、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 を定義しました。

  1. ルーティングの構成

ThinkPHP6 では、ルーティング構成ファイルは app/route ディレクトリにあります。このディレクトリに router.php という名前の新しいファイルを作成し、次の構成を追加する必要があります。

use thinkacadeRoute;

Route::get('/', function () {
    return view('index');
});
ログイン後にコピー

このコードの機能は、Web サイトのルート ディレクトリ リクエストを # にリダイレクトすることです。 ##index.html ページ。ここでは、ThinkPHP6 フレームワークによって提供されるルーティング ショートカット関数 Route::get() を使用して、匿名関数を通じて index.html ページを返します。

    API インターフェイスの作成
SPA アプリケーションはバックグラウンドからデータをリクエストする必要があるため、バックグラウンドで RESTful API インターフェイスを作成する必要があります。 ThinkPHP6 では、

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 thinkacadeDb;

class Blog
{
    public function index()
    {
        $result = Db::table('blog')->select();

        return json($result);
    }
}
ログイン後にコピー

このコードの機能は、データベースからブログ データを取得し、結果を JSON 形式で返すことです。ここでは、ThinkPHP6 フレームワークが提供する

Db::table() メソッドを使用してデータベースを操作します。

    JavaScript コードを記述する
最後に、

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);
            });
    }
});
ログイン後にコピー

このコードの機能は、Vue.js と Axios を使用することです。 .js は、バックグラウンド API インターフェイスからブログ データを取得し、ページ上にデータをレンダリングします。ここでは、Vue.js が提供する

data 属性を使用してブログ データを保存します。同時に、created ライフ サイクル関数を通じてデータを初期化し、 Axios.js BlogデータのGETメソッド。

    シングルページ アプリケーションの実行
これで、SPA アプリケーションの基本的な構成とコードの記述が完了しました。最後に、次のようにアプリケーションを起動するだけです。

php think run
ログイン後にコピー
ブラウザに

http://localhost と入力すると、SPA アプリケーションの効果を確認できます。

概要

この記事では、ThinkPHP6 フレームワークを使用して基本的な SPA アプリケーションを作成する方法を紹介します。 Vue.js や Axios.js などの JavaScript ライブラリを

index.html ページに導入し、API インターフェイスと JavaScript コードを作成することで、Web アプリケーションで単一ページの動的な対話を実現できます。 ThinkPHP6 フレームワークは、豊富なルーティングおよびデータベース操作メソッドを提供し、高品質な Web アプリケーションを迅速に開発できます。

以上がThinkPHP6 を使用してシングルページアプリケーションを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート