我有一个标准的angular-cli生成项目。 是否有意义为它创建一个app shell,并将它与ng-universal的服务器渲染技术结合起来?
如果是这样,那么最好的方法是什么?
答案 0 :(得分:1)
Angular Universal只是额外的服务器端渲染,与浏览器相同的方式完成99%(差异很小,即动画)。因此,可以确保在现有的Angular App上实现它(即使它包含AppShell)。
在我看来,这样做只有很小的优点。
让我们这样看一下:
<html>
<head>
<script type="text/javascript" src="yourapp.js" />
</head>
<body>
<app></app>
</body>
</html>
使用JavaScript捆绑包。 JavaScript正在客户端生成所有代码。这种方法绝对不是SEO友好的(并且在许多情况下不是用户友好的)。
<html>
<head>
<script type="text/javascript" src="yourapp.js" />
</head>
<body>
<app>
<nav> <a href=""> some element</a> <a href=""> another element</a></nav>
<component>dynamic content goes here</component>
</app>
<body>
</html>
withServerTransition()
中的BrowserModule
方法解决此问题。您的提案可以加快服务器端呈现过程。当然,如果一个网站可以加载更快,我们应该这样做。但是,另一方面,Angular中的服务器端渲染非常快。例如,我的角度通用应用程序(https://www.angular-universal-serverless.maciejtreder.com/)的样板在约1-2秒后(在清除缓存等之后)就在客户端准备就绪。因为它是PWA,所以每次下次访问都是离线完成的,因此加载时间不到0.5秒。
所以在我的特定情况下和其他许多人(我猜)没有多大意义来获得额外的0,0001秒。当然,一切都取决于您的需求。