2016-10-18 4 views
0

私が知る限り、Polymerの会話とリソースのほとんどは、データバインディングのかなり簡単なケースをカバーしています。ポリマーの複雑なデータバインディンググラフの設計/デバッグ

しかし、Polymerは、原則としてIDE、WYSIWYGエディタ、または単純なゲームのようなものを構築するために使用できる強力なツールです。ページ上の要素の総数がかなり小さい(確かに< 1000、理想的には< 100)。

しかし、これらの例では、データバインディングのグラフは非常に複雑になり、単一のイベント(マウスクリックなど)の結果は、把握しにくい方法でバインディンググラフの周りを伝播/反響することがあります。

まず、これらのタイプの複雑なシナリオのベストプラクティスなどを議論するリソース(ビデオ/ブログなど)があります。バインディンググラフのグラフィック表現を生成するツールを持つ機会は2つあります。理想的には、そのようなグラフをページにレンダリングし、要素自体に重ね合わせることができます。事実、イベント中のデータ伝播を追跡し、グラフの周りを動くデータを示すGIFを生成する、「記録」機能を持つと想像することができます。

これは理想的な質問ではないかもしれませんが、githubの問題のように思われませんでした。

+0

ここからのデータフローの[ビデオ](https://www.youtube.com/watch?v=pAW4YDLtPVs&list=PLNYkxOF6rcICc687SxHQRuo9TVNOJelSZ&index=12が)だを視覚化するredux-devtoolsを使用することができるということです今週のPolymer Summit: – Maria

+0

@Maria - はい、私はサミットにいました。それは拘束力の深い見方の一つでしたが、それはまだかなり些細なことでした。私はより複雑なレベルに対処する方法に興味があります。 –

答えて

1

複雑なアプリケーションには、reduxなどの外部状態管理フレームワークを使用する必要があります。
polymer-reduxの動作は、reduxと対話できる単純な動作です。

基本的にコンポーネントをPresentational and Container Componentsに分割します。現在のポリマー成分は、reduxを意識せず、データのみを取り込み、イベントを放出するあなたの葉の成分です。コンテナコンポーネントは、還元動作を実装し、状態変更のアクションをディスパッチし、データを子(通常はプレゼンテーションコンポーネント)に渡します。

状態はグローバルに格納され、すべての状態の変更は簡単に単体テストできるリデューサで行われます。利点は、あなたがtime travel debuggingを行い、またあなたのstate as a graph

+0

それは確かに役に立つと思われますが、イベントの負荷は慣用的なポリマーのようには見えません。自動生成された小道具変更イベント(通知が真であるときに登録されています)を使用していないと...ビジュアル構成要素は常に論理構成要素と対になる。 –

+0

私の2番目のポイントを参照すると、私は、サミットの会合(女性のショッピングアプリを披露する非グーグルの男)の1つでデモされたページ設定コンポーネントを覚えています。このコンポーネントは視覚的かつ論理的です。 –

+0

「イベントの負荷」とはどういう意味ですか? Polymerの慣用的なやり方は、通常、プロパティ/属性を介してデータが流れ、イベントを介してデータが上に流れるということです。 reduxを導入する場合の唯一の違いは、DOMツリーに沿ってすべてのデータを渡す必要がないことです。コンテナ要素を使用すると、興味のある状態ツリーのスライスを購読することができます。また、コンテナコンポーネントはビジュアルだけでなく論理的にも使用できますが、多くの再利用可能なビジュアル要素を必要とし、間に –

関連する問題