当我手动键入组件的路径(/无论如何)时,我的整个站点都会重新加载(进行所有初始的根服务调用),但是当我使用路由器链接到相同的组件时,例如
<a [routerLink]="['/whatever']" [routerLinkActiveOptions]="{exact: true}">
仅拨打该组件服务所需的呼叫
我可以做些什么使手动键入的路径像routerLink一样工作吗?
答案 0 :(得分:1)
不。无需加载页面即可更改url的唯一方法是History API,这是角路由器在引擎盖下使用的。如果用户点击地址栏中的Enter或单击带有href的锚标记,它将始终在浏览器中加载资源。为了减轻初始化所有服务和初始组件的开销,许多SPA框架提供了SSR(服务器端渲染),其中一些初始化可以在页面(重新)加载之前在服务器端完成。如果在初始化时加载了大量数据,则可以查看缓存或本地存储,如果有很多资产(css,图像),则可以查看服务端(离线应用程序)。
编辑: 延迟加载任何您不需要的东西也可以减少初始化开销。