新建项目

  1. e2e:端对端测试文件
  2. node_modules :项目所需要的依赖包
  3. resources :android/ios 资源(更换图标和启动动画)
  4. src:开发工作目录,页面、样式、脚本和图片都放在这个目录下
  5. www:静态文件,ionic build --prod 生成的单页面静态资源文件
  6. platforms:生成 android 或者 ios 安装包需要的资源---(cordova platform add android 会生成)
  7. plugins:插件文件夹,里面放置各种 cordova 安装的插件 config.xml: 打包成 app 的配置文件
  8. package.json: 配置项目的元数据和管理项目所需要的依赖 ionic.config.jsonionic.starter.json:ionic 配置文件 angular.json angular 配置文件
  9. tsconfig.json: TypeScript 项目的根目录,指定用来编译这个项目的根文件和编译选项 tslint.json:格式化和校验 typescript

Ionic4.x src 下面文件分析

  1. app:应用根目录 (组件、页面、服务、模块...)
  2. assets:资源目录(静态文件(图片,js 框架...)
  3. theme:主题文件,里面有一个 scss 文件,设置主题信息。
  4. global.scss:全局 css 文件
  5. index.html:index 入口文件
  6. main.ts:主入口文件
  7. karma.conf.js/test.js:测试相关的配置文件
  8. polyfills.ts: 这个文件包含 Angular 需要的填充,并在应用程序之前加载

app.module.ts 分析

  1. //文件:根模块 告诉ionic如何组装应用
  2.  
  3. //ionic angular的核心文件
  4. import { NgModule } from '@angular/core';
  5. import { BrowserModule } from '@angular/platform-browser';
  6. import { RouteReuseStrategy } from '@angular/router';
  7. import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
  8.  
  9. //ionic打包成app以后配置启动画面 以及导航条的服务 (不用管)
  10. import { SplashScreen } from '@ionic-native/splash-screen/ngx';
  11. import { StatusBar } from '@ionic-native/status-bar/ngx';
  12.  
  13. //引入路由配置文件
  14. import { AppRoutingModule } from './app-routing.module';
  15.  
  16. //引入根组件
  17. import { AppComponent } from './app.component';
  18.  
  19. @NgModule({
  20. declarations: [AppComponent], //申明组件
  21. entryComponents: [], //配置不会在模板中使用的组件
  22. imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule], //引入的模块 依赖的模块
  23. providers: [ //配置服务
  24. StatusBar,
  25. SplashScreen,
  26. { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
  27. ],
  28. bootstrap: [AppComponent]
  29. })
  30. export class AppModule {}

app-routing.module.ts 分析

  1. import { NgModule } from '@angular/core';
  2. //路由相关配置
  3. import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
  4. //路由配置
  5. const routes: Routes = [
  6. { path: '', loadChildren: './tabs/tabs.module#TabsPageModule' },
  7. { path: 'button', loadChildren: './button/button.module#ButtonPageModule' }
  8. ];
  9. @NgModule({
  10. imports: [
  11. RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
  12. ],
  13. exports: [RouterModule]
  14. })
  15. export class AppRoutingModule {}

Ionic4.x 项目结构简单分析的更多相关文章

  1. ffplay.c函数结构简单分析(画图)

    最近重温了一下FFplay的源代码.FFplay是FFmpeg项目提供的播放器示例.尽管FFplay只是一个简单的播放器示例,它的源代码的量也是不少的.之前看代码,主要是集中于某一个"点&q ...

  2. ffplay.c函数结构简单分析(绘图)

    近期重温了一下FFplay的源码. FFplay是FFmpeg项目提供的播放器演示样例.虽然FFplay不过一个简单的播放器演示样例,它的源码的量也是不少的. 之前看代码,主要是集中于某一个" ...

  3. ANDROID培训准备资料之项目结构简单介绍

    Android Studio项目结构初步主要介绍下面几个文件夹,后续再补充 (1)java文件夹的介绍 (2)Res文件夹的介绍 (3)R文件的介绍 (4)Manifests文件夹的介绍 我们先看看整 ...

  4. ffmpeg.c函数结构简单分析(画图)

    前一阵子研究转码的时候看了FFmpeg的源代码.由于ffmpeg.c的代码相对比较长,而且其中有相当一部分是AVFilter有关的代码(这一部分一直不太熟),因此之前学习FFmpeg的时候一直也没有好 ...

  5. jQuery核心结构简单分析

    以下分析均采取沙箱模式 (function (window) { //为了提高性能把需要的变量统一提前声明 var arr = [], push = arr.push; //为区别jQuery,此文章 ...

  6. Hadoop源码学习笔记之NameNode启动场景流程一:源码环境搭建和项目模块及NameNode结构简单介绍

    最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二. ...

  7. FFmpeg源代码简单分析:结构体成员管理系统-AVOption

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

  8. FFmpeg源代码简单分析:结构体成员管理系统-AVClass

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

  9. FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)

    ===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...

随机推荐

  1. 剖析可执行文件ELF组成

    对比参考:剖析.o文件ELF组成 相比.o的ELF格式,有哪些变化? .rel.text和.rel.data消失了 为什么这两个节会消失? 链接器将各.o中同名的.text和.data节整合到一起时, ...

  2. Castle Windsor Ioc 一个接口多个实现解决方案

    介绍 Castle Windsor 是微软的Ioc类库,本文主要介绍解决一个接口多个实现的解决方案 接口和类 以下内容不是真实的实际场景,仅仅是提供解决一个接口多个实现的思路. 业务场景类 先假设有一 ...

  3. Codeforces 1206 D - Shortest Cycle

    D - Shortest Cycle 思路:n大于某个值肯定有个三元环,否则floyd找最小环. 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) ...

  4. LRU(最近最少使用)(python实现)

    """ python3 only LRU cache """ from collections import OrderedDict fro ...

  5. postgresql学习笔记--基础篇 -psql工具

    --创建用户 CREATE ROLE pguser WITH ENCRYPTED PASSWORD 'pguser'; --创建表空间目录 mkdir -p /database/pg10/pg_tbs ...

  6. AtCoder NIKKEI Programming Contest 2019 C. Different Strokes (贪心)

    题目链接:https://nikkei2019-qual.contest.atcoder.jp/tasks/nikkei2019_qual_C 题意:给出 n 种食物,Takahashi 吃下获得 a ...

  7. Ajax使用方法

    什么是AJAX? AJAX,Asynchronous JavaScript and XML (异步的JavaScript和XML),一种创建交互式网页应用的网页开发技术方案. 异步的JavaScrip ...

  8. BZOJ 1181: [CROATIAN2009] IZBROI选举(二分+dp)

    题面 在一个地区的选举中,共有V个人参加了投票,每一票只可能投给N个政党中的一个.当地的议会共有M个席位.不妨将N个政党编号为1到N,并且设编号为i的政党最终的得票为Vi,则议会中的席位按如下规则分配 ...

  9. easyui--权限管理

    1.权限目的: 是为了让不同的用户可以操作系统中不同资源   直接点说就是不同的用户可以操作不同的菜单     核心:实现菜单权限的核心思想就是控制用户登录后台所传递的menuId(与树形菜单分类列段 ...

  10. 学到了林海峰,武沛齐讲的Day17完-6 文件操作

    参考   https://www.cnblogs.com/linhaifeng/articles/5984922.html f=open('陈粒1',encoding='utf-8')     ope ...