このチュートリアルでは、動的更新のためにGitHubの問題リストとWebhook APIを活用して、Canjsを使用してリアルタイムTo-Doリストアプリケーションを構築することを示しています。 このアプリケーションは、CanjsのMVVMアーキテクチャとその主要なパッケージの展示(
、can-component
、can-connect
、およびcan-define can-stache
主要な機能と学習成果:
リアルタイムのgithub統合:
webhook apiのおかげで、githubの問題が変更されると、アプリが動的に更新されます。
-
MVVMアーキテクチャ:CANJSのコアパッケージがどのようにモデル-View-ViewModel開発を促進するかを理解してください。
- CANJSコンポーネント:モジュール性と再利用性のためにカスタムCANJSコンポーネントを構築および利用します。
データのバインディング:- シームレスなデータフローのために一元配置データバインディングと双方向の両方のデータバインディングを実装します。
ドラッグアンドドロップの並べ替え:
jQuery UIを使用して、サーバーを介して変更が続くインタラクティブな問題の並べ替えを有効にします。
-
ローカルサーバーのセットアップ(node.js):ローカルサーバーを構成して、データの永続性とWebhookイベントの処理を管理します。
-
canjsおよびMVVMパターン:
- CanjsはMVVM(Model-View-ViewModel)アーキテクチャを採用しています。そのコンポーネントを調べてみましょう:
データモデル(
):アプリケーションモデルは、個々の問題と(オブジェクト用)および(配列の場合)を使用した問題のリストをモデル化します。これらは観察可能であり、変更時のビューを自動的に更新します。 例
モデル:
-
can-define
テンプレートを表示():can-define/map/map
canjsは、HTML UIをレンダリングするために、ハンドルバーのようなテンプレートエンジンであるcan-define/list/list
を使用します。 例:Issue
import DefineMap from 'can-define/map/map';
const Issue = DefineMap.extend('Issue', {
id: 'number',
title: 'string',
sort_position: 'number',
body: 'string'
});
ログイン後にコピー
- 表示モデルの表示:
can-stache
viewmodelは、モデル内で直接ロジックを処理する仲介者として機能します。 Canjsでは、テンプレートはviewmodelでレンダリングされます
can-stache
コンポーネント():<ol>
{{#each issues}}
<li>{{title}}</li>
{{/each}}
</ol>
ログイン後にコピー
コンポーネントは、ビュー、ビューモデル、イベントの処理をカプセル化し、コードの再利用性を促進します。
-
プロジェクトのセットアップ:can-stache
- プロジェクトディレクトリとファイルを作成します(
index.html
、app.css
、app.js
)。
- 必要なライブラリ(jquery、jquery ui、canjs、socket.io)を含めます。
index.html
スタイル (ブートストラップをお勧めします)を使用しています。-
app.css
(node.jsとnpmが必要)を使用してローカルサーバーを設定します。 これにより、GitHub Webhookイベントとデータの永続性が処理されます。 認証のためにGitHubの個人アクセストークンを入手してください。-
github-issue-server
ステップバイステップ開発:
基本的なCANJSセットアップ:- フレームワークに慣れるために、シンプルな「Hello World」Canjsアプリケーションを作成します。
github発行コンポーネント:
githubの問題を表示および管理するために、カスタムCanjsコンポーネント(- )を開発します。
githubリポジトリ構成:
github-issues
githubリポジトリを構成し、ローカルサーバーにイベントを送信するようにWebhookを設定します。
- 問題の取得:を使用して、githubリポジトリから問題を取得して表示します。
- 問題の作成:フォームを追加して新しい問題を作成し、APIを介してGitHubに送信します。
can-connect
リアルタイムアップデート(socket.io): socket.ioを統合して、githubからのリアルタイムの更新を処理します。
-
ドラッグアンドドロップの並べ替え:jQuery UIのメソッドを使用してドラッグアンドドロップ機能を実装します。
- 完全なソースコードはGitHub(元の記事に記載されているリンク)で利用できます。 チュートリアルは、CanjsとGithubの統合に関する一般的な質問に対処するFAQセクションで終了します。
以上がリアルタイムのgithubの問題を作成する方法CanjsとのTo-Doリストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。