アンギュラユニバーサルアプリは、初期コードに対してコンテンツを2回リロードしますが、これを防ぐ方法はありますか?アンギュラユニバーサルリロード2回
私は初期のコードをngOnInit()に入れて、同じ結果を得ています。
アンギュラユニバーサルアプリは、初期コードに対してコンテンツを2回リロードしますが、これを防ぐ方法はありますか?アンギュラユニバーサルリロード2回
私は初期のコードをngOnInit()に入れて、同じ結果を得ています。
Angular Universalは、プロジェクトのjsをサーバー側で事前にプリレンダリングし、domがレンダリングされると、フェッチされたデータに関係なく、クライアント側に切り替えます。データやAPIを入手した後で再度呼び出さないようにしてください。これは、2回目のリロードを停止するのに役立ちます。
2回目にAPI呼び出しを避ける方法を提案しますか?サーバーからブラウザに状態を転送する方法はありますか? – Starscream
クエリやコードをサーバー側でのみ実行し、フロントエンド側では「2回でない」とは考えない場合は、プラットフォームをチェックしてコードの実行場所を確認することができます
import {Injectable, PLATFORM_ID} from '@angular/core';
import {isPlatformServer} from '@angular/common';
@Injectable()
export class Something {
constructor(@Inject(PLATFORM_ID) private platformId: Object) {
}
getSomething() {
if (isPlatformServer(this.platformId)) {
// Here we execute the code on the server side only
} else if (isPlatformServer(this.platformId)) {
// Here we execute the code on the browser side only
}
}
}
どの角度の角度を使用していますか?あなたのコンポーネントのpackage.jsonといくつかの要素を投稿しようとしてください – rex
https://stackoverflow.com/questions/46471986/angular-universal-how-to-trigger-manually-the-state-change-from-server-サイド? – Moema