2016-05-08 8 views
1

ngIffalseの場合、HTMLブロック全体はレンダリングされません。 ngSwitchの偽の場合も同じですか?簡易ログインの場合は2 ngIfとngSwitch

私はユーザーがログインしている場合を除き描画されないWebページの特定の要素を持ちたい

とパフォーマンス上のフォロー質問:。

はのは、特定のHTMLセクションには、1000以上のリストをレンダリングしているとしましょうフォーラムのスレッドngForを使用しています。そのセクションにngIf == falseがある場合、読み込み速度は向上しますか? ngIftrueになったときだけ、ngForを実行することを意味しますか?

答えて

3

あなたは*ngFor*ngIfとを包む場合、*ngForは表示されませんと*ngIf式がfalseであり、これは間違いなく、パフォーマンスを向上させる際に、まったく実行されません。 DOMを変更するのは高価です。必要な場合にのみ行う必要があります。

[hidden]="expression"それでも、DOMを更新して要素をレンダリングしますが、displayプロパティのみが要素を表示しないように設定されています。

*ngSwitchは、*ngIfと同様に動作し、分岐条件がfalseの場合は*ngForをレンダリングまたは実行しません。

+0

ありがとうGünter!あなたは "高価な"とは何を意味するのかを明確にすることができますか? –

+0

多くのCPUリソースが必要で、ページのレンダリングが遅くなります。 –

0

Angular-1.5の場合 条件が一致しない場合、それぞれのDOMはレンダリングされません。 AngualrJSのドキュメントを参照してください。私は角2でこの振る舞いを変えたとは思わない。