Ionic Frameworkionic 跨平台开发ionic开发

ionic3 开发之工作原理(目录结构、文件分析)及懒加载介绍

2018-07-29  本文已影响2人  星辰大海_王

onic3.x 目录结构分析

执行命令ionic start myApp tabs 生成ionic3项目myApp后,用vsCode打开项目可以看到项目中:

src目录详细介绍

src目录:工作目录,开发完成后通过ionic的命令行生成为原始的静态html页面,并存放在www目录,也就是说www在开发过程中是不需要理的,可以任意删除。

当我们想打包app时,命令行执行打包指令会生成一个调用浏览器插件的原生项目,同时把www目录拷贝到项目中,浏览器插件的入口网页指向www的index.html,从而在app中实现本地浏览网页的效果。

其中页面和脚本等因为是本地的就不需要网上加载,在数据加载过程中就已经可以看到页面,等数据加载完成自动局部刷新页面即可,这就是ionic的运行机理

src 下面文件分析:

了解IonicModule之前,我们需要先看下NgModule与@NgModule 装饰器:

NgModule是angular(这里不再详细介绍)框架的概念。

@NgModule 装饰器:

IonicModule与IonicPageModule

了解了NgModule以后,IonicModule与IonicPageModule就好解释了。

回头我们再好好看下@NgModule中的这些属性:

declarations

entryComponents(入口组件):

bootstrap:

ionic关键之页面:IonicPage

ionic3.x懒加载实现:

官方介绍在这里
懒加载是ionic3.x的新特性,Lazy Loading 可以在初始化时只加载一些必要的代码,非必要的代码分离出来在需要加载的时候再加载之,理论上能让应用加快一定的启动速度。

下面以MyPage的加载为例,懒加载的实现:
第一步:设置深度链接: IonicPageModule中添加此页面,IonicPageModule.forChild用于导入页面模块
@NgModule({
  declarations: [ MyPage ],
  imports: [
  IonicPageModule.forChild(MyPage)
 ],
   entryComponents: [
   MyPage
]
 })
export class MyPageModule {}
第二步:将@IonicPage decorator添加到组件中。最简单的用法是添加一个空的decorator:
@IonicPage()
@Component({
   templateUrl: 'main.html'
})
export class MyPage {}

这将自动创建一个链接到MyPage组件,使用与类名称相同的名称:“MyPage”。@IonicPage() 等同于:@IonicPage({‘MyPage’})
@IonicPage decorator接受了一个DeepLinkMetadataType对象。此对象接受以下属性:name, segment, defaultHistory, and priority.。所有这些都是可选的,但是可以用来创建复杂的导航链接。

第三步:使用这个名称导航到该页面了。例如:
@Component({
   templateUrl: 'another-page.html’
 })
export class c {
   constructor(public navCtrl: NavController) {}
    goToMyPage() {
         // go to the MyPage component
        this.navCtrl.push('MyPage');
     }
}
上一篇下一篇

猜你喜欢

热点阅读