角度ユニバーサルにおけるデータのプリロード
5711 ワード
私のためにコードを書いた後、私は、どのように角度一般的なデータを事前に取得することができます基本的な誤解を認識しました.
特定の状況では、ZoneJS
いいえ、私は他のフレームワークを学習するまで、角ユニバーサル
データを正しくプリフェッチするには、まずコンポーネントの外部にロードする必要があります.それはお互いに依存する円形の関数を引き起こす可能性があるので、あなたはいつもZonejsハックを使用することはできません.
私が反応することを憎む最大のものは、それがどのように状態を扱うかです.いったんnextjs、nuxtjs、およびsveltekitに掘り出し始めると、データは常に関数/クラスからプリロードされ、データはそのクラスに渡されます.
これは、普遍的な角度のデータを処理するためのものです.Googleがたくさんのスタックオーバーの記事ならば、このプロセスは非常に複雑になります.
基本的にあなたのデータをロードします
アプリ.モジュールです.TS
MyService.TS
ここでは、単にデータを取得し、変数に保存します
Example File
アプリ.コンポーネント.TS
ここでは、文字通りちょうどあなたのサービスからデータを得ます
The full source code 私の最後のポストに使用されたので、完全に適切な状態の転送、残りのAPIとアクションでそれを見ることができますし、Vercelに展開.
参照in action . あなたが私の最後のポストを読むならば、あなたは『若干のデータ』に気がつきます文字列は既にDOMにあり、現在は正しくロードされます.
J
オリジナル作品
特定の状況では、ZoneJS
scheduleMacroTask
コードを実行するには.コンストラクターで何かをプリロードできません.新しいオブジェクトを返すコンストラクターです.The ngOnInit
あなたの状況次第で働きますように.いいえ、私は他のフレームワークを学習するまで、角ユニバーサル
Providers
意味をなすようになった.あなたが戻って、私の過去記事を読むならば、あなたはこの進化を見るために始めることができます.データを正しくプリフェッチするには、まずコンポーネントの外部にロードする必要があります.それはお互いに依存する円形の関数を引き起こす可能性があるので、あなたはいつもZonejsハックを使用することはできません.
その他の枠組み
私が反応することを憎む最大のものは、それがどのように状態を扱うかです.いったんnextjs、nuxtjs、およびsveltekitに掘り出し始めると、データは常に関数/クラスからプリロードされ、データはそのクラスに渡されます.
アングルユニバーサル
これは、普遍的な角度のデータを処理するためのものです.Googleがたくさんのスタックオーバーの記事ならば、このプロセスは非常に複雑になります.
基本的にあなたのデータをロードします
app.module.ts
あなたのサービスからAPP_INITIALIZER
. サービス自体はデータを返しませんが、データを状態に保ちます.アプリ.モジュールです.TS
providers: [{
provide: APP_INITIALIZER,
deps: [myService],
useFactory: (rest: myService) => async () => await rest.getData(),
multi: true
}],
Example File MyService.TS
ここでは、単にデータを取得し、変数に保存します
this.data
. サービスのこのインスタンスを新しいコンポーネントにプロバイダーとして渡すと、this.data
変数.async getData(): Promise<void> {
...
this.data = await this.fetchData();
}
この関数は何も返しません.Example File
アプリ.コンポーネント.TS
ここでは、文字通りちょうどあなたのサービスからデータを得ます
this.data
, それをしてください.信じられないほど簡単.import { Component } from '@angular/core';
import { RestService } from './rest.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'angular-test';
data: string;
constructor(private rest: RestService) {
this.data = this.rest.data;
}
}
Example File The full source code 私の最後のポストに使用されたので、完全に適切な状態の転送、残りのAPIとアクションでそれを見ることができますし、Vercelに展開.
参照in action . あなたが私の最後のポストを読むならば、あなたは『若干のデータ』に気がつきます文字列は既にDOMにあり、現在は正しくロードされます.
J
Reference
この問題について(角度ユニバーサルにおけるデータのプリロード), 我々は、より多くの情報をここで見つけました https://dev.to/jdgamble555/preloading-data-in-angular-universal-20ljテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol