庆华 2019-06-26
❤ 系列教程看这里
Ionic2入门教程(一)安装和环境配置
Ionic2入门教程(二)进阶配置:Android打包
ionic2入门教程(三)高仿网易公开课(1)
ionic2入门教程(四)解读目录结构
ionic2入门教程(五)如何使用IonicPage
ionic2入门教程(六)地图服务(谷歌、高德、百度定位)
ionic2入门教程(七)来一个五星评分
ionic2入门教程(八)高仿网易公开课(2)
ionic2入门教程(九)样式修改和主题切换
Ionic2入门教程(十)如何debug一个Ionic应用
Ionic2入门教程(十一)制作一个视频背景欢迎页
Ionic2入门教程(十二)使用阿里巴巴矢量图标库Iconfont
Ionic2入门教程(十三)带你走近3款二维码扫描插件
最近因为这个折腾的挺久的,之前简单地看过一些关于ionic和angular的生命周期说明,不实际用看再多还是不算了解的。
本文主要分为两个部分,一个是ionic页面的生命周期,一个是angular组件的生命周期,其实页面也是组件,只是不复用,ionic也单独弄了一套生命周期,所以和angular的组件生命周期还是不同的,使用的形式也不一样。
两种在有些情况下,其实是会互相影响的。
ionic官方文档:https://ionicframework.com/do...
生命周期事件在导航的不同阶段被触发,它们可以在任何能够由导航控制器push/pop的组件类型中定义。
angular官方文档:https://www.angular.cn/guide/...
每个组件都有一个被Angular管理的生命周期。Angular创建它,渲染它,创建并渲染它的子组件,在它被绑定的属性发生变化时检查它,并在它从DOM中被移除前销毁它。
通过实现一个或多个Angular core库里定义的生命周期钩子接口,开发者可以介入该生命周期中的这些关键时刻。每个接口都有唯一的一个钩子方法,它们的名字是由接口名再加上ng前缀构成的。
没有指令或者组件会实现所有这些接口,并且有些钩子只对组件有意义。只有在指令/组件中定义过的那些钩子方法才会被Angular调用。
//如OnInit接口的钩子方法叫做ngOnInit export class MyComponent implements OnInit { constructor() { } ngOnInit() { console.log(`OnInit`); } }
第一次执行顺序基本如下图,但有些方法其实会多次执行。
最先执行构造方法。这里蓝色的几个方法我还没有用到,
除了4,5,6,7,只适合组件,其余均可用于指令和组件。
测试ionic页面生命周期 ionViewCanEnter(){ console.log("canenter"); } ionViewCanLeave(){ console.log("canleave"); } ionViewDidEnter(){ console.log("didenter") // this.ngOnInit(); } ionViewDidLeave(){ console.log("didleave"); } ionViewWillLeave(){ console.log("willleave"); } ionViewWillEnter(){ console.log("willenter") } ionViewWillUnload(){ console.log("willunload"); } ionViewDidLoad(){ console.log("didload"); } 测试angular生命周期
templateUrl:'build/app.html',<ion-navid="nav"[root]="rootPage"#contentswipe-back-enabled="false"
项目要实现一个功能,在首页底部中间的tab弹出一个页面,而且是没有底部栏的,而不是像平常滑动的一个子页面。<ion-tab [root]="tab5Root" tabIcon="call" ="cal