私は現在、最初の 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")