Ionic4.x 项目结构简单分析
新建项目
- e2e:端对端测试文件
- node_modules :项目所需要的依赖包
- resources :android/ios 资源(更换图标和启动动画)
- src:开发工作目录,页面、样式、脚本和图片都放在这个目录下
- www:静态文件,ionic build --prod 生成的单页面静态资源文件
- platforms:生成 android 或者 ios 安装包需要的资源---(cordova platform add android 后 会生成)
- plugins:插件文件夹,里面放置各种 cordova 安装的插件 config.xml: 打包成 app 的配置文件
- package.json: 配置项目的元数据和管理项目所需要的依赖 ionic.config.json、ionic.starter.json:ionic 配置文件 angular.json angular 配置文件
- tsconfig.json: TypeScript 项目的根目录,指定用来编译这个项目的根文件和编译选项 tslint.json:格式化和校验 typescript
Ionic4.x src 下面文件分析
- app:应用根目录 (组件、页面、服务、模块...)
- assets:资源目录(静态文件(图片,js 框架...)
- theme:主题文件,里面有一个 scss 文件,设置主题信息。
- global.scss:全局 css 文件
- index.html:index 入口文件
- main.ts:主入口文件
- karma.conf.js/test.js:测试相关的配置文件
- polyfills.ts: 这个文件包含 Angular 需要的填充,并在应用程序之前加载
app.module.ts 分析
- //文件:根模块 告诉ionic如何组装应用
- //ionic angular的核心文件
- import { NgModule } from '@angular/core';
- import { BrowserModule } from '@angular/platform-browser';
- import { RouteReuseStrategy } from '@angular/router';
- import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
- //ionic打包成app以后配置启动画面 以及导航条的服务 (不用管)
- import { SplashScreen } from '@ionic-native/splash-screen/ngx';
- import { StatusBar } from '@ionic-native/status-bar/ngx';
- //引入路由配置文件
- import { AppRoutingModule } from './app-routing.module';
- //引入根组件
- import { AppComponent } from './app.component';
- @NgModule({
- declarations: [AppComponent], //申明组件
- entryComponents: [], //配置不会在模板中使用的组件
- imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule], //引入的模块 依赖的模块
- providers: [ //配置服务
- StatusBar,
- SplashScreen,
- { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
- ],
- bootstrap: [AppComponent]
- })
- export class AppModule {}
app-routing.module.ts 分析
- import { NgModule } from '@angular/core';
- //路由相关配置
- import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
- //路由配置
- const routes: Routes = [
- { path: '', loadChildren: './tabs/tabs.module#TabsPageModule' },
- { path: 'button', loadChildren: './button/button.module#ButtonPageModule' }
- ];
- @NgModule({
- imports: [
- RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
- ],
- exports: [RouterModule]
- })
- export class AppRoutingModule {}
Ionic4.x 项目结构简单分析的更多相关文章
- ffplay.c函数结构简单分析(画图)
最近重温了一下FFplay的源代码.FFplay是FFmpeg项目提供的播放器示例.尽管FFplay只是一个简单的播放器示例,它的源代码的量也是不少的.之前看代码,主要是集中于某一个"点&q ...
- ffplay.c函数结构简单分析(绘图)
近期重温了一下FFplay的源码. FFplay是FFmpeg项目提供的播放器演示样例.虽然FFplay不过一个简单的播放器演示样例,它的源码的量也是不少的. 之前看代码,主要是集中于某一个" ...
- ANDROID培训准备资料之项目结构简单介绍
Android Studio项目结构初步主要介绍下面几个文件夹,后续再补充 (1)java文件夹的介绍 (2)Res文件夹的介绍 (3)R文件的介绍 (4)Manifests文件夹的介绍 我们先看看整 ...
- ffmpeg.c函数结构简单分析(画图)
前一阵子研究转码的时候看了FFmpeg的源代码.由于ffmpeg.c的代码相对比较长,而且其中有相当一部分是AVFilter有关的代码(这一部分一直不太熟),因此之前学习FFmpeg的时候一直也没有好 ...
- jQuery核心结构简单分析
以下分析均采取沙箱模式 (function (window) { //为了提高性能把需要的变量统一提前声明 var arr = [], push = arr.push; //为区别jQuery,此文章 ...
- Hadoop源码学习笔记之NameNode启动场景流程一:源码环境搭建和项目模块及NameNode结构简单介绍
最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二. ...
- FFmpeg源代码简单分析:结构体成员管理系统-AVOption
===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...
- FFmpeg源代码简单分析:结构体成员管理系统-AVClass
===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...
- FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)
===================================================== FFmpeg的库函数源代码分析文章列表: [架构图] FFmpeg源代码结构图 - 解码 F ...
随机推荐
- 剖析可执行文件ELF组成
对比参考:剖析.o文件ELF组成 相比.o的ELF格式,有哪些变化? .rel.text和.rel.data消失了 为什么这两个节会消失? 链接器将各.o中同名的.text和.data节整合到一起时, ...
- Castle Windsor Ioc 一个接口多个实现解决方案
介绍 Castle Windsor 是微软的Ioc类库,本文主要介绍解决一个接口多个实现的解决方案 接口和类 以下内容不是真实的实际场景,仅仅是提供解决一个接口多个实现的思路. 业务场景类 先假设有一 ...
- Codeforces 1206 D - Shortest Cycle
D - Shortest Cycle 思路:n大于某个值肯定有个三元环,否则floyd找最小环. 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) ...
- LRU(最近最少使用)(python实现)
""" python3 only LRU cache """ from collections import OrderedDict fro ...
- postgresql学习笔记--基础篇 -psql工具
--创建用户 CREATE ROLE pguser WITH ENCRYPTED PASSWORD 'pguser'; --创建表空间目录 mkdir -p /database/pg10/pg_tbs ...
- AtCoder NIKKEI Programming Contest 2019 C. Different Strokes (贪心)
题目链接:https://nikkei2019-qual.contest.atcoder.jp/tasks/nikkei2019_qual_C 题意:给出 n 种食物,Takahashi 吃下获得 a ...
- Ajax使用方法
什么是AJAX? AJAX,Asynchronous JavaScript and XML (异步的JavaScript和XML),一种创建交互式网页应用的网页开发技术方案. 异步的JavaScrip ...
- BZOJ 1181: [CROATIAN2009] IZBROI选举(二分+dp)
题面 在一个地区的选举中,共有V个人参加了投票,每一票只可能投给N个政党中的一个.当地的议会共有M个席位.不妨将N个政党编号为1到N,并且设编号为i的政党最终的得票为Vi,则议会中的席位按如下规则分配 ...
- easyui--权限管理
1.权限目的: 是为了让不同的用户可以操作系统中不同资源 直接点说就是不同的用户可以操作不同的菜单 核心:实现菜单权限的核心思想就是控制用户登录后台所传递的menuId(与树形菜单分类列段 ...
- 学到了林海峰,武沛齐讲的Day17完-6 文件操作
参考 https://www.cnblogs.com/linhaifeng/articles/5984922.html f=open('陈粒1',encoding='utf-8') ope ...