本文摘自PHP中文网,作者青灯夜游,侵删。
本篇文章带大家了解一下Angular中的特性模板和根模板。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。前提是安装了 Angular cli
,以下的大部分文件创建都是依赖于cli
提供的指令
Angular
中的特性模板和根模板(AppModule
)
区别在于特性模板可以把应用划分,个人理解类似于组件化
1、特性模板创建的指令ng g module article
,这里使用的是ng g module article --routing
,可以生成一个article-routing.module.ts
路由文件
2、此时CLI
会在app
文件夹下再创建一个文件夹article
,article
文件夹下包含两个文件article.module.ts
和article-routing.module.ts
3、使用ng g component
生成两个组件,指定模板为article
,指定的模板会自动导入到article.modules.ts
中,并且注册到declarations
数组,注意:不要删除declarations
中注册的组件,不然会导致组件中部分指定无法使用
- ng g component 说明
ng g component article/article-list -m=article
,在article
文件夹下生成article-list
文件夹组件ng g component article/article-create -m=article
,在article
文件夹下生成article-create
文件夹组件
4、article.module.ts
在 CLI 生成的特性模块中,在文件顶部有两个 JavaScript 的导入语句:第一个导入了 NgModule
,它像根模块中一样让你能使用 @NgModule
装饰器;第二个导入了 CommonModule
,它提供了很多像 ngIf
和 ngFor
这样的常用指令。 特性模块导入 CommonModule
,而不是 BrowserModule
,后者只应该在根模块中导入一次。 CommonModule
只包含常用指令的信息,比如 ngIf
和 ngFor
,它们在大多数模板中都要用到,而 BrowserModule
为浏览器所做的应用配置只会使用一次。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
相关推荐:《angular教程》
5、article-routing.module.ts
,路由地址嵌套配置,这里的地址设置是因为在app-routing.module
根路由模块中已经设置了当前模块的路由前缀为article
,因此下面的路由都只用直接设置即可,访问时带上根路由设置的路由前缀。
- 例如,根路由设置的是
article
,这里设置的是list
,访问地址需要使用article/list
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
6、根模块app.mudles.ts
,导入app-routing.module
文件,可以配置全局的路由
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
7、根模块的路由app-routing.module.ts
loadChildren
是使用了惰性加载特性模块 默认情况下,NgModule
都是急性加载的,也就是说它会在应用加载时尽快加载,所有模块都是如此,无论是否立即要用。对于带有很多路由的大型应用,考虑使用惰性加载 ―― 一种按需加载 NgModule
的模式。惰性加载可以减小初始包的尺寸,从而减少加载时间。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
8、最后如果想要访问article
下面的list
和create
路由在浏览器输入地址article/list
article/list
或者
article/create
更多编程相关知识,请访问:编程视频!!
以上就是详解Angular根模块与特性模块的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
浅谈Angular模板指令:ng-template和ng-container的用法
浅谈Angular路由跳转中的navigatebyurl和navigate
更多相关阅读请进入《Angular》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者