1

私は現在、最初の Meteor プロジェクトを開発しています。コードベースが成長しているため、セッション変数/リアクティブ プログラミング アプローチを正しく使用することについて確信が持てません。たとえば、ブログ記事を編集するためのフォームを見てみましょう。編集する前にSession.set("current_article", Articles.findOne(id))、現在の記事を設定するために使用します。記事フォームを開くと、 を使用してすべてが正しく入力され<input type="text" name="title" value="{{article.title}}">ます。

しかし、フォームは単にタイトルを表示するよりもはるかに複雑です:

ここに画像の説明を入力

たとえば、タイトルまたはタグが変更されると、入力中に右側のテキスト (生成されたツイート メッセージ) が更新されます。これを実現するために、keyUpを設定するリスナーを登録しますSession.set("current_article", $.extend(Session.get("current_article"), {tweet: someMagicTweetGeneration()}))。セッション変数の使用方法によって、テンプレート全体が再レンダリングされることに既にお気付きかもしれません。

だから私の質問は: より複雑なオブジェクト (記事など) をセッション変数に保存するのは理にかなっていますか? この方法でフォームを保存するのは非常に簡単ですが、明らかに他の問題が発生します。、、 ...に分割Session.get("current_article")する必要がありますか? 他のベストプラクティスはありますか?Session.get("current_article.title")Session.get("current_article.tweet")

4

2 に答える 2

1

流星がどんどん良くなっていくことに賭けたいので、そのようなフープを飛び越える必要はありません。http://docs.meteor.com/#template_preserveについてはすでにご存知だと思います。

セッション内のデータを、メインとサイドバーの 2 つの異なる構造に分割することをお勧めします。各テンプレートがどちらか一方のみに反応するようにします。これは、mongo コレクションの妥当なスキーマでさえあるかもしれません。

オブジェクト全体ではなくセッションにIDを保存し、コレクションのfindOneだけを提案する最適化について何かを読みました。

これは架空の問題ですか、それとも気になる症状はありますか?

于 2013-09-04T19:12:53.913 に答える