リアクティブ・プログラミング
今回お伝えするのは,
リアクティブ・
たとえば表計算ソフトの一般的な機能として,
また,
Meteorの素晴らしい点は,
たとえば第8回のサンプル
この現象は,
- 片方のクライアントが,
キャッシュされたデータを変更する - サーバのデータにも自動的に変更が伝わる
- そのサーバデータを利用している他のクライアントにも,
自動的に変更が伝わり, キャッシュが更新される - キャッシュが更新されると,
自動的にビューが更新される
2~4までの処理がすべて
上記のようなMeteorの動作は,
- クライアント上のリアクティビティ
- publish/
subscribeによるサーバデータとクライアントキャッシュの同期
それぞれを理解するのは決して難しくありません。今回は,
クライアントサイドでのリアクティビティ
Meteorが提供するクライアントサイドでのリアクティビティにより,
- データに変更があった場合,
ビューが自動的に変更される - 設定値を保持する変数に変更があった場合,
自動的にサーバデータとの同期が再実行される - ...
ここで挙げた例はどれも,
Meteorがデフォルトで用意しているリアクティブ・
- Session…メモリ上に展開される,
汎用的なキー・ バリューストア。 Session
というグローバル変数で表され,任意のデータを自由に格納できる。 - データベースクエリの結果…コレクションの
find
を実行した結果。 - Meteor.
status()…クライアントとサーバの間の接続状況。 - Meteor.
user()…現在ログイン中のユーザ - Meteor.
userId()…現在ログイン中のユーザID - Meteor.
loggingIn()…現在ログイン中かどうか
これらのデータソースに変更があった場合,
- HTMLテンプレート…連載4~6回を参照。Meteorのビューを構築する中心的な技術。
- Meteor.
render()/Meteor. renderList()…HTMLテンプレート内で使用される。 - Meteor.
autosubscribe()…メソッド内で実行された Meteor.
については,subscribe 再実行時に自動的に停止・ 再開してくれる。 - Meteor.
autorun()…任意の関数を受け取り, データソースの変更に際して自動的に再実行できる。