Angular 5如何在加载应用程序时从服务器端呈现切换到客户端呈现

时间:2018-04-17 03:54:56

标签: angular asp.net-core serverside-rendering angular-universal

我使用的是Angular + ASP.NET核心。默认情况下,它包含服务器端渲染。这是合理的,因为加载需要时间。在正确引导应用程序之前,确实需要服务器呈现页面。

但是,我发现当我点击任何锚链接时,不是从客户端路由,而是刷新整个文档。它太沉重了。

我想知道应用程序何时已经被引导,我如何禁用服务器端呈现并仅使用客户端呈现?

2 个答案:

答案 0 :(得分:1)

这是错误的问题。导致整个文档重新加载的原因不是由于服务器端渲染,而是由于在锚元素上使用href。相反,我应该使用routerLink。

答案 1 :(得分:1)

你有几个选择。

选项1

<a href="javascript:void(0)" (click)="functionContainingRoutingLogic()">My Link</a>

请注意,href设置为javascript:void(0),路由逻辑将写入函数functionContainingRoutingLogic()的Typescript中。像这样:

public functionContainingRoutingLogic() {
  this.router.navigate(['route_name_defined_in_your_router_config']);
}

选项2

<a href="javascript:void(0)" 
  [routerLink]="['/route_name_defined_in_your_router_config/']">My link</a>

所以,在这里你直接在html中提供路线名称

注意:如果您有href="#"href="anything else",点击它会重新加载同一页