1.认识ionic的生命周期钩子

截至ionic 3.8.0版本,框架提供了8个钩子函数,它们分别会在页面生命周期的各个阶段被触发,我们来简单了解一下。

1.1 ionViewDidLoad

页面加载完成触发,这里的“加载完成”指的是页面所需的资源已经加载完成,但还没进入这个页面的状态(用户看到的还是上一个页面)。

需要注意的是它是一个很傲娇的钩子,全程只会调用一次,即第一次进入页面时被调用,此后你无论怎样进进出出它都冷冷清清凄凄惨惨戚戚不再理你了。除非你把它的后台杀了,重新进入这个软件(在网页调试的时候按刷新也是可以的)。

因此这个钩子适合你做一些一次性的处理,比如从服务器拉取用户数据存到缓存中。

1.2 ionViewWillEnter

字面意义理解就是“我要进来了”的那一刻,这个时候页面刚刚开始切换。你可以在这时对页面的数据进行预处理,这个钩子是每次都会调用的。

1.3 ionViewDidEnter

当这个钩子被触发的时候,用户已经进入到新页面了(页面处于激活状态),同样也是每次都会调用。

说到这我不得不插一句,ionic对钩子的命名对广大中国学生真是友好啊,一个will一个did就把事情解决了。不像外边某些妖艳(误)的框架,一堆ready, update, complied, destory什么的,记一次忘一次。(当然这是一个玩笑,组件的命名跟框架的运行机制是息息相关的)

1.4 ionViewWillLeave

页面准备 (is about to) 离开时触发,这时用户刚刚触发了返回按钮或者相关的事件。

1.5 ionViewDidLeave

页面已经 (has finished) 离开时触发,页面处于非激活状态了。

1.6 ionViewWillUnload

页面中的资源即将被销毁时触发,此刻你是否会猜测这个钩子与ionViewDidLoad一样,只会被触发一次呢?

2.还有两个守卫钩子

我开头提到ionic提供了8个钩子,而我只介绍了6个。前6个钩子有个共性,他们的返回值都是void,即在相应时刻调用,不会返回任何的信息。

ionViewCanEnter

ionViewCanLeave

而另外两个钩子有些不太一样,它们是可以返回布尔值的ionViewCanEnter和ionViewCanLeave。

瞧瞧,刚刚讲了时态,现在开始讲情态动词了。如果前6个钩子是页面对用户来访的一种被动反应,那么现在,页面具有了意识,可以准许你来或者准许你走,啊,页面从此站起来了!

这两个钩子,更多扮演着权限控制的角色,最近有个很新潮的术语叫守卫(Guard),这个守卫怎么理解呢,你可以把它理解成小区的看门大爷、和蔼可亲的班主任,以及古代杏花楼里的姿态万千的老鸨2333。

链接:https://www.jianshu.com/p/72b704b5c9ed

ionic3 生命周期方法相关推荐

  1. View的生命周期方法和Activity生命周期方法关系

    View 是在Activity 中使用到的,所以在自定义View的时候,我们需要了解Activity 生命周期方法和View的生命周期方法调用先后顺序.  见如下图 (1) 在Activity onC ...

  2. 实验10:创建带有生命周期方法的bean ||实验11:测试bean的后置处理器

    实验10:创建带有生命周期方法的bean 实验11:测试bean的后置处理器 MyBeanPostProcessor.java package com.atguigu.bean;import org. ...

  3. Spring-基于注解的配置[03Bean作用范围和生命周期方法]

    Bean的作用范围 实例 Bean的生命周期方法 实例 Bean的作用范围 通过注解配置的Bean和通过<bean>配置的Bean一样,默认的作用范围都是singleton. Spring ...

  4. 15_activity生命周期方法说明

    现在是可见并且可以被操作,所以现在是一个前台的Activity. 按一下Home键,它是先onPause然后onStop. 现在它就处于一个Stop停止的状态.停止的状态如果我当前内存够用的情况下,它 ...

  5. Servlet和HTTP请求协议-学习笔记01【Servlet_快速入门-生命周期方法、Servlet_3.0注解配置、IDEA与tomcat相关配置】

    Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...

  6. 如何通俗易懂地向别人解释React生命周期方法?

    什么是生命周期方法?新的React16+生命周期方法是怎样的?你该如何直观地理解它们,以及为什么它们很有用? 生命周期方法到底是什么? React组件都有自己的阶段. 如果要你"构建一个He ...

  7. Activity的生命周期及各生命周期方法的作用

    一.Activity的生命周期中各个方法的作用 onCreate(): 做Activity上所需要数据的初始化工作. onStart(): 显示Activity界面,此时用户对界面可见但不可交互. o ...

  8. [JavaWeb-Servlet]Servlet中的生命周期方法(init,service,destroy)

    Servlet中的生命周期方法: @Override public void init(ServletConfig servletConfig) throws ServletException {}1 ...

  9. Spring4.x(7)---对象的生命周期方法

    对象的生命周期方法 Spring为了满足开发者在执行某方法之前或者在结束某个任务之前需要操作的一些业务,则提供了init-method和destroy-method  这两个属性,这两个属性需要加载在 ...

最新文章

  1. Zend Guard 各版本下载【破解方法】
  2. SAP RETAIL 供应商寄售库存的UB STO
  3. 262K Color
  4. 函数(一.return)
  5. JEE7:展望新时代
  6. Redis的数据结构之字符串
  7. C#LeetCode刷题之#31-下一个排列(Next Permutation)
  8. UI设计实用素材|功能性图标ICON的作用
  9. SAP License:SAP S4HANA和ECC的区别
  10. Nios内部RAM固化配置
  11. FPGA 控制 RGMII 接口 PHY芯片基础
  12. 全角空格可复制粘贴,解决字符对齐问题
  13. 基于java毕业设计的汽车销售进销存
  14. 什么软件可以测试自己有没有近视,微信APP中怎么测试自己的视力
  15. Android Native Crash崩溃及错误原因分析二-实战解决
  16. 聚焦化工安全:化工厂人员定位
  17. Linux Snap 命令
  18. 可能是macOS下最好的微博客户端Maipo
  19. 电大计算机专业毕业自我鉴定,电大计算机毕业生自我鉴定.doc
  20. 20145120黄玄曦《网络对抗》恶意代码分析

热门文章

  1. Ubuntu 16.04 amd64下deb安装gcc5.4和所有依赖
  2. 银行案例分析:识别个人贷款客户画像,实现精准营销与风险防范
  3. 内联(inlining)
  4. 一看就会的Nginx学习教程(千万别告诉其他人),java视频百度云盘
  5. 手机控制云服务器文件,手机控制云服务器文件
  6. PHP验证身份证类(包含香港身份证校验)
  7. yy欢聚时代软件测试笔试题
  8. 在Android Studio 上为项目添加Git版本控制
  9. vysor技术实现原理(投屏不包括鼠标控制)
  10. 外部电源和锂电池自动切换电路