問題タブ [aurelia-templating]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
aurelia - オブジェクトのプロパティ [] を観察できません
コンポーネント用items
に定義されたプロパティを持つカスタム コンポーネントがあります。@children
tracker-item
@noView
は注釈付きの単純なビューモデルであり、プロパティは 1 つだけです。
私のビューでは、アイテムは次のように定義されています。
これは完全に機能しましたが、aurelia-cli でビルドするためにプロジェクトを更新した後、コンポーネントが呼び出されるたびに次のエラーが表示されます。
TrackerComponent は、私のカスタム コンポーネントの名前です。
コードのどこかで、同じエラーを発生させない別のカスタムコンポーネントに対して同じ定義を持っているため、そのエラーがどこから来たのかわかりません。
これの何が問題なのですか?
javascript - VM で「@containerless」を使用し、カスタム要素の HTML ビューで「containerless」を使用する場合の違い
aurelia コンポーネントにコンテナレス機能を使用すると、奇妙な動作が見られます。SVG コンテナ内でカスタム要素を作成していますが、SVG コンテナ内では SVGElements タグのみが許可されているため、DOM に追加する前にコンテナレス タグを使用してカスタム要素タグを削除する必要がありました。Aurelia リリース バージョン 1.0.0 を使用しており、webpack で SPA をビルドしています。
ここでは、コンテナレス使用の 2 つの実装を表示する gistrun の例を見つけることができます。 https://gist.run/?id=58ba6282ad54c1263eec3a141fe42183
この例では、2 つのビューモデルを作成し、これをカスタム要素にバインドしています。as-element="compose"
ビューモデルを作成したこと、および Aurelia が VM を作成してはならないことを aurelia に伝えるために使用します。これらとカスタム要素の違いは、コンテナレス タグです。
CustomElement は Viewmodel に
@containerless
タグを持っていませんが、HTML ビューに「コンテナレス」を持っています。@containerless
Aurelia HUB で説明されているように、withattr コンポーネントには HTML ビューに「コンテナレス」がありませんが、Viewmodel にはタグがあります。
どちらの状況でも、青い四角形が表示されると思います。customelement タグは、コンテナレス タグのため、Aurelia によって削除されます。ただし、@containerless
実装 2 のように、タグは機能していないようです。
質問:
これらの実装の出力が異なる理由の手がかりはありますか? どれが正しいですか?@containerless
タグをビューモデルに配置する必要があるとAurelia Docsに記載されているように、2が予想されます。
どんな助けでも大歓迎です:)
aurelia - 別のファイルでテンプレートを定義する必要がありますか?
次のように、同じファイルで定義されたテンプレートを作成することは可能ですか。それとも、構成されたテンプレートを別のファイルに含める必要がありますか?
aurelia - Aurelia: パフォーマンス/効率の違い: 宣言されたビュー要素と repeat.for のインライン DOM
repeat.for でこれら 2 つのオプションの間にパフォーマンスまたは効率の違いはありますか?
オプション 1: インライン要素
オプション 2: カスタム ビュー要素
ビュー要素は次のとおりです。
view-element.js
ビュー要素.html
ビュー要素に多くのバインディングが含まれている場合、違いはありますか?
aurelia - Aurelia - repeat.for ビューのレンダリングのパフォーマンスを向上させる
repeat.for
基本的に、すべてのメッセージをループし、 を使用してメッセージ ビューをレンダリングする で構成される、いわゆるチャット ビューがあります<compose>
。
問題は、メッセージ数が 50 を超え、ユーザーがチャット間を移動すると、非常に遅くなることです ( repeat.for
VM のデータセットを置き換えると、更新がトリガーされます)。
このようなビューの処理に関して、何か間違ったことをしているように感じます。他の代替案に関する情報を得ることができますか?
UI の仮想化を試してみましたが、残念ながら現在のプラグインは必要な機能 (可変高さのアイテム、ボトムアップの配置) をサポートしていません。
また、バインディングに関してかなりの最適化を行いました。ほとんどは 1 回限りであり、データセットへの更新はデバウンスされます。しかし、主なボトルネックは初期ロード (最初にビューをバインドする) であるため、これでは改善されませんでした。
ありがとう!
現在のアプローチの例:
aurelia - 動的コンテンツでカスタム属性が機能しない
私は w2ui グリッドを使用しており、テンプレート列は次のように生成されます。
ご覧のように poker-card はカスタム属性です。グリッドにレンダリングされません。その他の方法で?
aurelia - IE でカスタム要素のパフォーマンスの問題を繰り返す
IE10/11 にはいくつかのパフォーマンスの問題があります。次の plunker は、カスタム要素でテーブルの行を繰り返しているときのパフォーマンスの低下の一部を説明しています。
このプランカーの例では、テーブル全体をレンダリングするためにクロムで合計 68 ミリ秒を取得します。IE11 では 280 ミリ秒になり、行ごとのレンダリング速度が 100% 向上します。Chrome は 1 ミリ秒あたり最大 3 行を処理しますが、IE は 2 ミリ秒ごとに 1 行を処理します。
この plunkr は、アプリケーションの基本モデルです。私たちのアプリケーションでは、かなり重い次のテンプレートを繰り返します。これには、ユーザーの設定と権限レベルに応じたスタイルの計算と表示/非表示のバインディングが含まれます。
2 行目 (拡張情報) は if.bound であるため、最初は描画されません。
このアプリケーションで、テンプレートの 100 行を含むビューをレンダリングすると、chrome はテーブル全体を 587 ミリ秒でレンダリングします。IE11 は 3779ms でそれを行います。Edge は 1283ms、Firefox は 909ms です。
IE11 では各行に約 30 ミリ秒かかりますが、
aurelia-template を使用すると IE11 のパフォーマンスが大幅に低下する理由はありますか? IE のレンダリング速度を改善するにはどうすればよいですか? バインディングを oneTime に設定しようとしましたが、あまり効果がありませんでした。繰り返しやIEでうまく機能しないカスタム要素で避けるべきことはありますか? テンプレートがかなり大きいため、再利用性とコード管理のためにカスタム要素が必要です。
javascript - Aurelia - 子の作曲はいつ行われますか?
Aurelia JS フレームワークを使用して、repeat.for 要素の結果が親 VM のコードによって DOM に完全にロードされたことを検出できる必要があります。リスナーを @bindable に挿入し、attached() でリスナーをトリガーできることはわかっていますが、それは私には非常にばかげているようです。
何か案は?
aurelia - ビューのない Aurelia ViewModel
ポップアップ ダイアログへのルートが必要です。@noView でビューモデルを作成しました
しかし、これはこのエラーにつながります:
私の意見では、navbar.ts からポップアップを表示することは適切ではありません。navbar にそのようなコードを含めるのは好きではないため、より適切な場所に配置することをお勧めします。
ページの現在のコンテンツを失うことなくnavbarからポップアップを表示する最良の方法は何ですか?基本的にどこからでも表示でき、navbar.tsのコードもまったくありません。
これを達成するためのより良い方法はありますか?ページ レイアウトを再考する必要がありますか?
ありがとう。