Angular组件多处使用或跨模块引入时会重复下载吗?
Angular组件重复使用时的资源加载问题
组件被两处使用不会被下载两次。Angular CLI默认依赖的Webpack打包工具会自动做模块去重优化,同一个组件的代码只会被打包到一个代码块(chunk)中,无论在应用里引用多少次,浏览器只会下载一次这个代码块。
不管组件是嵌套在其他组件里,还是被引入到不同模块中,只要它是从同一个文件导出的(比如始终从
./user-profile.component.ts这类路径导入),Angular和打包工具都会识别为同一组件,不会重复打包和下载。额外提醒:Angular不允许同一个组件被多个NgModule直接声明,正确的做法是把共享组件放到一个共享模块(比如
SharedModule)里,其他模块通过导入这个共享模块来使用组件。这种方式既符合Angular的模块规范,也能确保打包时不会出现重复处理的情况。
内容的提问来源于stack exchange,提问作者Arthur
相关产品推荐
相关产品推荐

