Angular 自定义模块以及配置路由实现模块懒加载
项目目录
创建模块
- ng g module module/user --routing
- ng g module module/article --routing
- ng g module module/product --routing
创建组件
- ng g component module/user
- ng g component module/user/components/profile
- ng g component module/user/components/order
- ng g component module/article
- ng g component module/article/components/articlelist
- ng g component module/article/components/info
- ng g component module/product
- ng g component module/product/components/plist
- ng g component module/product/components/pinfo
1.app.module.ts
- import { BrowserModule } from '@angular/platform-browser';
- import { NgModule } from '@angular/core';
- import { AppRoutingModule } from './app-routing.module';
- import { AppComponent } from './app.component';
- @NgModule({
- declarations: [
- AppComponent
- ],
- imports: [
- BrowserModule,
- AppRoutingModule
- ],
- providers: [],
- bootstrap: [AppComponent]
- })
- export class AppModule { }
app.component.html
- <header>
- <a [routerLink]="['/user']">用户模块</a>
- <a [routerLink]="['/article']">文章模块</a>
- <a [routerLink]="['/product']">商品模块</a>
- </header>
- <router-outlet></router-outlet>
app-routing.module.ts
- import { NgModule } from '@angular/core';
- import { Routes, RouterModule } from '@angular/router';
- const routes: Routes = [
- {
- path:'user',loadChildren:'./module/user/user.module#UserModule'
- },
- {
- path:'article',loadChildren:'./module/article/article.module#ArticleModule'
- },
- {
- path:'product',loadChildren:'./module/product/product.module#ProductModule'
- },
- {
- path:'**',redirectTo:'user'
- }
- ];
- @NgModule({
- imports: [RouterModule.forRoot(routes)],
- exports: [RouterModule]
- })
- export class AppRoutingModule { }
用户模块user.module.ts
- import { NgModule } from '@angular/core';
- import { CommonModule } from '@angular/common';
- import { UserRoutingModule } from './user-routing.module';
- import { UserComponent } from './user.component';
- import { ProfileComponent } from './components/profile/profile.component';
- import { AddressComponent } from './components/address/address.component';
- @NgModule({
- declarations: [UserComponent, ProfileComponent, AddressComponent],
- imports: [
- CommonModule,
- UserRoutingModule
- ]
- })
- export class UserModule { }
user-routing-module.ts
- import { NgModule } from '@angular/core';
- import { Routes, RouterModule } from '@angular/router';
- import { UserComponent } from './user.component';
- import { ProfileComponent } from './components/profile/profile.component';
- import { AddressComponent } from './components/address/address.component';
- const routes: Routes = [
- {
- path:'',component:UserComponent
- },
- {
- path:'profile',component:ProfileComponent
- },
- {
- path:'address',component:AddressComponent
- }
- ];
- @NgModule({
- imports: [RouterModule.forChild(routes)],
- exports: [RouterModule]
- })
- export class UserRoutingModule { }
其他模块类似配置
自定义模块的父子路由
- import { NgModule } from '@angular/core';
- import { Routes, RouterModule } from '@angular/router';
- import { ProductComponent } from './product.component';
- import { PlistComponent } from './components/plist/plist.component';
- import { CartComponent } from './components/cart/cart.component';
- import { PcontentComponent } from './components/pcontent/pcontent.component';
- const routes: Routes = [
- {
- path:'',component:ProductComponent,
- children:[
- {path:'cart',component:CartComponent},
- {path:'pcontent',component:PcontentComponent}
- ]
- },
- {path:'plist',component:PlistComponent}
- ];
- @NgModule({
- imports: [RouterModule.forChild(routes)],
- exports: [RouterModule]
- })
- export class ProductRoutingModule { }
Angular 自定义模块以及配置路由实现模块懒加载的更多相关文章
- angular配置懒加载路由的思路
前言 本人记性不好,对于别人很容易记住的事情,我愣是记不住,所以还是靠烂笔头来帮我长长记性. 参考文章:https://blog.csdn.net/xif3681/article/details/84 ...
- Angular性能优化实践——巧用第三方组件和懒加载技术
应该有很多人都抱怨过 Angular 应用的性能问题.其实,在搭建Angular项目时,通过使用打包.懒加载.变化检测策略和缓存技术,再辅助第三方组件,便可有效提升项目性能. 为了帮助开发者深入理解和 ...
- vue-cli 项目实现路由懒加载
在vue 单页应用中,如果路由不实现懒加载,那么打包出来的文件将会非常大,加载也会非常慢.vue-router 官网也有相应的介绍,但是具体怎么去实现还是讲的比较模糊的,下面将一步步讲解配置路由懒加载 ...
- vue路由懒加载
大项目中,为了提高初始化页面的效率,路由一般使用懒加载模式,一共三种实现方式.(1)第一种写法: component: (resolve) => require(['@/components/O ...
- vue2.x 路由懒加载 优化打包体积
当打包构建应用时,Javascript 包会变得非常大,影响页面加载.如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了. 结合 Vue 的异步组 ...
- vue+webpack2实现路由的懒加载
当打包构建应用时,Javascript 包会变得非常大,影响页面加载.如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了. 结合 Vue 的异步组 ...
- 「Vue.js」Vue-Router + Webpack 路由懒加载实现
一.前言 当打包构建应用时,Javascript 包会变得非常大,影响页面加载.如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了.结合 Vue ...
- 路由懒加载---Vue Router
一.什么是懒加载? 懒加载也就是延迟加载或者按需加载,即在需要的时候进行加载. 二.为什么在Vue路由中使用懒加载? 像vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常 ...
- 18-Angular 自定义模块以及配置路由模块懒加载
新建项目,新建几个子模块,实现懒加载 用户.商品.文章 新建这三个模块 创建模块的时候后面加 --routing.会自动生成模块的路由文件 先删掉. 重新创建模块带routing 这样就会生成两个文件 ...
随机推荐
- git命令——revert、reset
参考:如何在 Git 中重置.恢复,返回到以前的状态 使用git时,如果对刚刚提交的后悔了怎么办,如何撤销? 方法一:手动修改 你把新增的文件删了 或者 更改过的文件再改回来,然后再commit一次. ...
- MySQL分布式数据库架构:分库、分表、排序、分页、分组、实现教程
MySQL分库分表总结: 单库单表 : 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到. 单库多表 : 随着用户数量的增加, ...
- 使用Wireshark对手机抓包设置说明
一.原因 1.手机目前没有类似的抓包工具可以直接对手机进行抓包 2.一般数据交换的路线是:手机——>运营商——>服务器,可以在手机和运营商中间加一道网卡变成:手机——>PC网卡——& ...
- Session&Cookie&localStorage浅谈
Session&Cookie&localStorage 领导让我开发一个有两张信息表单需要提交页面的网站,我作为一名开发人员,这个需求太简单了,和领导说直接存session sessi ...
- Selenium常用API的使用java语言之1-环境安装之Java
(一)环境安装之Java 1.安装java 点击 JDK8下载,根据自己的平台,选择相应的版本进行下载. 小知识: Java环境分JDK和JRE ,JDK就是Java Development Kit. ...
- Scrapy框架的八个扩展
一.proxies代理 首先需要在环境变量中设置 from scrapy.contrib.downloadermiddleware.httpproxy import HttpProxyMiddlewa ...
- c++两种字符串赋值方式 并介绍 C语言下遍历目录文件的方式
c++字符串声明:一种是声明字符数组并赋值,另一种是直接声明string类 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #incl ...
- HttpReader
头文件: #pragma once #include <afxinet.h> class CSF_HttpDataReader { public: CSF_HttpDataReader(v ...
- input 限制输入数字和小数
//input 限制输入数字和小数 <input type="text" name="demo" value="" onkeyup=& ...
- 普通的java Ftp客户端的文件上传
关于ftp上传文件其实并不难,但有时候面对现实的环境还是很蛋疼的,今天我就分享一下,普通的上传文件文件至FTP的方式,它满足大部分FTP,但也有特别的,下篇博客会提及到. 下面我用一个FtpUtil, ...