Angular Universal用于服务器端渲染。
我有一个功能齐全的Angular应用。增加FCP。我需要在服务器端渲染中添加水分。
Angular Universal是否允许动态SSR。在服务器端加载某些组件?
我找不到与此相关的任何内容。(是的,我在Google上做了一些Google搜索)。
我在这里找到了类似的话题,但是我需要了解的更多。
The dicision boundary between Angular & Angular Universal。
找到了一些与here相关的文章。
是将数据绕过后端还是不关心数据,仅呈现静态数据?
在角度通用情况下是否可能出现以下情况
如果页面上有三个组件
<Comp1></Comp1>
<Comp2><Comp2>
<Comp3><Comp3>
Comp1和Comp3主要是静态的。Comp2是用户特定的。我不希望在服务器端呈现comp2。服务器渲染中的Comp1和Comp3,客户端上的Comp2。
答案 0 :(得分:0)
angular通用的工作方式是将组件渲染到服务器端,然后,在页面加载后,客户端Angular应用将接管并重新渲染组件。
如果您不使用状态传输,则有时客户端可能会从API请求数据时出现闪烁。
如果您只想不呈现Comp2
服务器端,则可以简单地基于平台(浏览器/服务器)添加一些条件
template.html
<Comp1></Comp1>
<Comp2 *ngIf=isBrowser></Comp2>
component.html
import {Injectable, Inject, PLATFORM_ID, Optional} from '@angular/core';
import {isPlatformBrowser} from "@angular/common";
isBrowser: boolean = false;
constructor(@Inject(PLATFORM_ID) private platformId: Object)
{
this.isBrowser = isPlatformBrowser(this.platformId);
}
但是请注意,无论如何Comp1
都会再次在客户端呈现
答案 1 :(得分:0)
不知道它是否可以满足您的所有需求,但是您可以创建静态网站,并像在agular.io网站上使用的那样将网络元素用作动态组件。另外,您可以在单击或其他事件中懒惰地导入那些组件。