小程序的生命周期以及页面路由

  小程序的启动,和小程序的应用周期是息息相关的

  

  小程序应用的生命周期:由一个钩子组成,onLaunch  onShow  onHide  onError组成;

    我们第一次进入小程序,客户端会帮我们初始化小程序的运行环境,那么我们会在CDN下载,或者在本地缓存我们的代码包,把他注入到运行环境里

    在初始完之后,微信客户端会给我们逻辑层app.js的实例,派发一个onLaunch事件,那么我们在逻辑层app.js中App()的构造器中的onLaunch方法就会被调用,当我们按左上角的关闭,或者按home键返回的话,就属于热启动里面的,会触发我们的onHide方法,在5分钟内打开,我们的onShow方法就会被调用,当我们的小程序发生脚本错误或者API调用失败,就会触发我们的onError的方法

  微信小程序页面的生命周期

  

  小程序的页面生命周期由5个钩子组成:onLoad  onShow  onReady  onHide  onUnload组成

    当我们页面初次加载,微信客户端会给我们逻辑层定义Page()的实例,已给的一个onload的事件,那么配置构造器在参数所定义的onload事件就会被调用,onload事件在页面结束之前

  就会调用一次;在onload回调中,我们拿到当前页面调用所打开的参数,在页面显示之后,我们的onshow方式就会被调用,(分两种情况:一种,初次打开,另一种,从别的页面退到这个页面)

  当页面初次渲染完之后,onReady方法就会被调用,onReady方法,在onShow方法之后调用,他和onload方法一样,页面结束前就调用一次,当我们触发onready的方法后我们的视图层和逻辑层

  就可以进行交互了,我们在当前页面的基础上在次打开一个新的页面 onhide方法就会被执行,如果我们关闭当前页,onUnload方法就会被调用

  

  前面说过我们小程序由两大线程组成,view线程(处理页面)和App Service线程(数据及服务)两者协同工作,完成了我们生命周期的调用

  生命周期的流程:

    在我们小程序启动后,我们的view线程和App Service线程会同时创建,当App Service线程创建完毕后,onload方法和onshow方法就会依次调用,一般我们在这两个方法中

  去请求我们的数据,view初始化完毕后,会告诉我们的App Service线程,我初始化好了,那么App Service会给我们页面一个初始化数据,view线程在拿到初始化数据后,进行

  首次渲染,渲染完之后,我们的App Service会接受一个onReady的调用,这个时候我们就能在服务器上拿到我们的数据了,App Service线程将拿到的数据返回给view线程的视图

  层,view线程在拿到数据后,会在次渲染到我们的视图层

  

  页面路由

  

  我们都知道,小程序的页面不止一个,路由以框架进行管理,以栈的形式维护我们的小程序的页面;

  小程序打开路由的6中方式;

    初始化:新页面入栈

    打开新页面:新页面入栈

    页面重定向:当前页面出栈,新页面入栈

    页面返回:页面不断出栈,直到目标返回页,新页面入栈

    tab切换和重加载:页面全部出栈,只留下新的一页

  打开路由方式,可以触发的事件;

  

    

原文地址:https://www.cnblogs.com/shangjun6/p/10853418.html