胆固醇偏高吃什么食物可以降胆固醇| 胰腺ca是什么意思| 子宫大是什么原因| 聚酰胺纤维是什么面料| 心脏不好挂什么科室| 新生儿拉肚子是什么原因引起的| 吃茄子有什么好处和坏处| 病毒性肠胃炎吃什么药| 都有什么瓜| 齐多夫定片是治什么病的| 养肝护肝吃什么药效果最好| 月经期间喝什么比较好| 模特是什么意思| 肺部纤维化是什么意思| 女用避孕套是什么样的| 313什么意思| 26周岁属什么| 冷萃是什么意思| 丙氨酸氨基转移酶是什么| 养狗有什么好处| 无赖不还钱最怕什么| 舌苔厚黄吃什么药| 眼睛干涩吃什么药| 外向孤独症是什么意思| 杰作是什么意思| 喝酒后头疼是什么原因| 做梦梦到蜘蛛是什么意思| 异性缘是什么意思| 心肌桥是什么病| 皮肤黑的人穿什么颜色的衣服好看| 什么水果利尿效果最好| 叫舅舅的是什么关系| 尿渗透压低是什么原因| 老过敏是缺什么维生素| 什么牌子的洗面奶好用| 痰是什么| 什么病会通过唾液传播| 市组织部长是什么级别| 蜘蛛痣是什么样的| 什么是朋友| 5.4是什么星座| 痛风吃什么水果最好| 吃完龙虾不能吃什么| 趴着睡觉有什么坏处| 额头青筋凸起是什么原因| 沁什么意思| 初一的月亮是什么形状| 女人做春梦预示着什么| 尿频尿急尿痛吃什么药| 拔罐为什么会起水泡| 阳历7月15日是什么星座| 为难是什么意思| 石楠花是什么味道| 十二月二十三是什么星座| c反应蛋白高说明什么| 枸杞有什么功效| 茅台为什么这么贵| 军官是什么意思| 读什么| 临床医学是什么意思| 好女人的标准是什么| tpo是什么意思| 屁股上长痘痘是什么原因| 屁多屁臭是什么原因| 尿液检查红细胞高是什么原因| 补气血用什么泡水喝| 魄力是什么意思| 血管瘤挂什么科比较好| 人绒毛膜促性腺激素是查什么的| 5月22日什么星座| 胃溃疡什么症状| 火加同念什么| 拔牙后能吃什么| 赤者念什么| 桂皮是什么| 科技布是什么材质| 银屑病是什么| 老犯困是什么原因| 次月是什么意思| 扶他是什么意思| 什么人容易长智齿| 激素高是什么原因| 风寒感冒流鼻涕吃什么药| 命里有时终须有命里无时莫强求什么意思| 不孕不育应检查什么| 开门见什么最吉利| 坐是什么结构| 黄瓜籽粉有什么作用| 女生打呼噜是什么原因| 大人积食吃什么药| 口腔溃疡是什么原因| led灯是什么灯| 什么的挑选| 银河是什么| 什么颜色显肤色白| eblan是什么品牌| 英红九号是什么茶| 吃什么去黄褐斑最有效| 什么时候有雨| 青金石五行属什么| 夏朝前面是什么朝代| 香芋紫是什么颜色| 梦见两口子吵架是什么意思| 下午一点是什么时辰| 省人大代表是什么级别| 补票是什么意思| 卵泡刺激素高说明什么| 刘亦菲原名叫什么| 为什么会得带状疱疹| 抬头头晕是什么原因| 下雨为什么会打雷闪电| 湿疹用什么药好| 刀子嘴豆腐心什么意思| 藕带是什么| 蜜蜂的天敌是什么| 蜈蚣吃什么| 志愿号是什么意思| 地支是什么意思| 双肾尿酸盐结晶是什么意思| 富是什么生肖| 鼻子痒用什么药好| 本命年犯太岁什么意思| 花漾是什么意思| 脚上有青筋是什么原因| 脚背浮肿是什么原因引起的| 栓塞是什么意思| 膝关节疼痛吃什么药好| 什么蛋营养价值最高| 痛经吃什么止痛药| 1954属什么生肖| 用牛奶敷脸有什么好处和坏处| 吐槽是什么意思啊| 晚餐吃什么| 口食读什么| 疑神疑鬼是什么意思| 厚黑学的精髓是什么| 个个想出头是什么生肖| 罗汉局是什么意思| 因特网是什么意思| 嘴边起水泡是什么原因| 2.3是什么星座| pending是什么意思啊| 贞操锁是什么| 妈妈的弟弟的老婆叫什么| 燃气是什么气体| 女儿红是什么| 感冒吃什么食物好得快| 令尹是什么官职| 88年的属什么| 苦口婆心是什么生肖| 吃什么提神| 施华蔻属于什么档次| 脚上长鸡眼去医院挂什么科| 7月7号是什么节日| 马来西亚说什么语言| 保妇康栓治疗什么妇科病| 冷泡茶用什么茶叶| 高血压不能吃什么食物| 什么孩子该看心理医生| 监视居住是什么意思| 骨转移用什么药| 孩子流鼻血是什么原因| 蒲公英茶有什么功效| 山梨酸钾是什么东西| 恐龙什么时候灭绝的| 见利忘义是什么生肖| 射手座的幸运色是什么| 医院可以点痣吗挂什么科| 甲沟炎用什么药膏| 咽喉老有痰是什么原因| 姑姐是什么意思| 什么什么分明的成语| 86年属什么的| 尿毒症前兆是什么症状表现| 予是什么意思| 招采是什么意思| 手抓饼里面夹什么好吃| 肝脏在什么位置| 该说不说的是什么意思| 拉肚子低烧是什么原因| 唾液是什么| 皮肤为什么会痒| 心电图是检查什么的| 唇珠在面相中代表什么| 中心句是什么意思| 钠低是什么原因造成的| 处女座男和什么座最配对| 蚧壳虫用什么药最有效| 拉大便有血是什么原因| 上午九点到十一点是什么时辰| 麂皮是什么皮| 身份证最后四位数代表什么| 世界上有什么花| 胆汁淤积吃什么药| 肾虚吃什么东西补得快| 中性粒细胞偏低是什么原因| 被蚂蚁咬了用什么药| 你的书包里有什么英文| 万寿菊什么时候开花| 晚餐吃什么减肥| 揠苗助长是什么意思| 夏天感冒咳嗽吃什么药| 吃葡萄皮有什么好处| 两弹一星是什么| 彼岸花开是什么意思| 二月出生是什么星座| 肋骨疼是什么原因| 罡什么意思| 少尉是什么级别| 10月底是什么星座| 躁郁症是什么| 猪鞭是什么| 3m是什么意思| 舌头红是什么原因| 匡威属于什么档次| 乙状结肠腺瘤是什么病| 横空出世是什么意思| 政治面貌填什么| 忻字五行属什么| 上面一个山下面一个今读什么| 蝴蝶代表什么生肖| 小肠与什么相表里| 呕心沥血是什么意思| 什么的嘴巴| 补液盐是什么| 束脚裤配什么鞋子| 10月30是什么星座| 鸟字旁的字和什么有关| 吃六味地黄丸有什么好处| 穿刺是什么手术| 骚扰是什么意思| 六月二号什么星座| 贫嘴什么意思| 干燥综合症吃什么药| 哦买噶什么意思| 晚上一点多是什么时辰| 脾胃虚弱吃什么蔬菜| 入睡困难是什么原因引起的| 95属什么生肖| 吃什么对肝脏好| 二十四节气分别是什么| 张家界为什么叫张家界| 9月21日是什么星座| 6.29是什么星座| 大便有粘液什么原因| 神经节是什么| 宫颈糜烂用什么药| 老是头疼是什么原因| 为什么全麻手术后不能睡觉| 孤芳不自赏什么意思| 肝郁化火是什么意思| crp高是什么感染| 舌苔发紫是什么原因| 梅子是什么水果| 忌口不能吃什么| 晚上2点是什么时辰| 木薯是什么| 覅什么意思| 免疫力和抵抗力有什么区别| 零点是什么意思| 烟青色是什么颜色| 梵蒂冈为什么没人敢打| 字如其人什么意思| sama是什么药| 百度

FreeFotoWorks(图片处理软件) V17.0.4官方版

百度 在不久前结束的中共十九大会议上,习近平总书记在报告中提出一个伟大命题:中国特色社会主义进入了新时代,这是中国新的历史方位。

在小程序中,所有页面的创建、销毁及状态转换都由页面路由来表达和进行控制。以下内容会简单介绍小程序的页面路由相关逻辑。

# 路由的时机

路由会以事件形式表示,由微信客户端下发给小程序基础库,下发后客户端和基础库将分别同时处理这一次路由事件。路由事件的发起可以大致分为以下两类:

  1. 通过用户的操作(如按下返回按钮)发起。通过这种方式发起时,路由事件将直接由客户端下发到基础库执行;

  2. 由开发者通过 API(如 wx.navigateTo)或者组件(如 <navigator>)发起。通过这种方式发起时,基础库将首先向客户端发起路由请求,客户端确认路由可以被执行后,再将路由事件下发到基础库。其中,如果路由被确定执行,API 的 success 回调函数或组件的 success 事件将被触发,否则将触发 fail

当一次路由被确定执行(API 或组件通知 success)时,没有操作可以取消这一次路由。

当多次路由被连续发起时,如果当前的路由事件还未处理完毕,后续的路由事件将等待当前路由处理,并排队依次执行,直到所有待处理的路由都被执行完毕。

一个简单的例子:用户点击返回按钮触发了 navigateBack,小程序在页面栈当前栈顶页的 onUnload 中调用 wx.redirectTo并不能 将当前正在被销毁的页面重定向为一个新页面,而是会先完成页面返回,再将页面返回后的新栈顶页重定向到新的页面。

# 页面栈

目前,小程序的页面会被组织为一个页面栈加若干不在栈中的悬垂页面的组合形式。其中,页面栈按顺序存放了通过跳转依次打开的页面,而当前已经创建但非活跃的 tabBar 页面及处于画中画模式(如 videolive-player 等)中的页面将以悬垂页面的形式存在。

全局接口 getCurrentPages 可以用来获取当前页面栈。

小程序冷启动完成后,在整个小程序存活过程中(除去某次路由执行到一半的中间状态外),页面栈中都将存在至少一个页面。

页面栈的具体行为可以参见下面具体路由行为中的详细描述。

# 路由的监听及响应

# 页面生命周期函数

每个小程序页面都有若干生命周期函数,如 onLoad, onShow, onRouteDone, onHide, onUnload 等。它们可以在页面注册时定义,并会在相应的时机触发。所有生命周期函数及它们各自的含义和触发时机可以参见 Page 接口,下面的内容也将详细说明每个路由将如何触发页面的生命周期函数。

# 页面路由监听

从基础库版本 3.5.5 开始,基础库提供了一组针对路由事件的监听函数。相比页面生命周期函数,它们能更好地针对某次路由进行响应。详见 页面路由监听

# 路由类型

小程序目前的路由类型可以大致分为以下七种:

# 1. 小程序启动

  • openType: appLaunch

小程序启动路由 appLaunch 表示一个新的小程序启动,并加载第一个页面。appLaunch 在每个小程序实例中会且仅会出现一次,且每个小程序实例启动时的第一个路由事件必定为 appLaunch

触发方式

appLaunch 仅能由小程序冷启动被动触发,不能由开发者主动触发,启动后也不能通过其他用户操作触发。

页面栈及生命周期处理

由于 appLaunch 必定是启动时的第一个路由,而路由前没有任何页面存在,此时页面栈必定为空。appLaunch 会创建路由事件指定的页面,并将其推入页面栈作为栈中唯一的页面。在这个过程中,这个页面的 onLoad, onShow 两个生命周期将依次被触发。

# 2. 打开新页面

  • openType: navigateTo

打开新页面路由 navigateTo 表示打开一个新的页面,并将其推入页面栈。

触发方式

  1. 调用 API wx.navigateTo, Router.navigateTo
  2. 使用组件 <navigator open-type="navigateTo"/>
  3. 用户点击一个视频小窗(如 video

navigateTo 的目标必须为非 tabBar 页面。

页面栈及生命周期处理

navigateTo 事件发生时,页面栈当前的栈顶页面将首先被隐藏,触发 onHide 生命周期;之后框架将创建路由事件指定的页面,并将其推入页面栈作为新的栈顶。在这个过程中,这个新页面的 onLoad, onShow 两个生命周期将依次被触发。

作为一种特殊情况,如果 navigateTo 事件发生时,页面栈当前的栈顶页面满足小窗模式逻辑,或事件由用户点击视频小窗发起,那么页面栈及生命周期的的处理会有所不同。

# 3. 页面重定向

  • openType: redirectTo

页面重定向路由 redirectTo 表示将页面栈当前的栈顶页面替换为一个新的页面。

触发方式

  1. 调用 API wx.redirectTo, Router.redirectTo
  2. 使用组件 <navigator open-type="redirectTo"/>

redirectTo 的目标必须为非 tabBar 页面。

页面栈及生命周期处理

redirectTo 事件发生时,页面栈当前的栈顶页面将首先被弹出并销毁,在此过程中,这个栈顶页面的 onUnload 生命周期将被触发;之后框架将创建路由事件指定的页面,并将其推入页面栈作为新的栈顶。在这个过程中,这个新页面的 onLoad, onShow 两个生命周期将依次被触发。

# 4. 页面返回

  • openType: navigateBack

页面返回路由 navigateBack 表示将页面栈当前的栈顶的若干个页面依次弹出并销毁。

触发方式

  1. 调用 API wx.navigateBack, Router.navigateBack
  2. 使用组件 <navigator open-type="navigateBack"/>
  3. 用户按左上角返回按钮,或触发操作系统返回的动作(如按下系统返回键、屏幕边缘向内滑动等)
  4. 用户点击一个视频小窗(如 video

如果页面栈中当前只有一个页面,navigateBack 调用请求将失败(无论指定的 delta 是多少);

如果页面栈中当前的页面数量少于调用时指定的 delta + 1(即调用后页面数量将少于一个),navigateBack 将弹出到只剩页面栈当前的页面栈底的页面为止(即至少保留一个页面)。

页面栈及生命周期处理

navigateBack 事件发生时,页面栈当前的栈顶页面将被弹出并销毁,并触发这个页面的 onUnload 生命周期;以上操作将被重复执行多次,直到弹出的页面数量等于指定的页面数量,或当前页面栈中只剩下一个页面。之后,页面栈新的栈顶页面的 onShow 生命周期将被触发。

一种特殊情况是,如果 navigateBack 发生时,页面栈当前的栈顶页面满足小窗模式逻辑,或事件由用户点击视频小窗发起,那么页面栈及生命周期的的处理会有所不同。

# 5. Tab 切换

  • openType: switchTab

Tab 切换路由 switchTab 表示切换到指定的 tab 页面。

触发方式

  1. 调用 API wx.switchTab, Router.switchTab
  2. 使用组件 <navigator open-type="switchTab"/>
  3. 用户点击 Tab Bar 中的 Tab 按钮

switchTab 的目标必须为 tabBar 页面。

页面栈及生命周期处理

由于 navigateToredirectTo 不能指定 tabBar 页面作为目标,因此当一个 tabBar 页面出现在页面栈中时,它必定为页面栈的第一个页面(即栈底页面);同时,框架会保证任一 tabBar 页面在小程序中最多同时存在一个页面实例。switchTab 的行为主要基于这两点进行。

switchTab 事件发生时,如果当前页面栈中存在多于一个页面,页面栈当前的栈顶页面将被弹出并销毁,并触发这个页面的 onUnload 生命周期;以上操作将被重复执行多次,直到页面栈中只剩下一个页面。之后,根据页面栈中仅剩的页面进行不同的处理:

  • 如果这个页面即为目标 tabBar 页面:
    • 如果路由事件开始时页面栈中存在多于一个页面(即目标 tabBar 页面不是栈顶页面),触发目标 tabBar 页面的 onShow 生命周期;
    • 否则(路由事件开始时目标 tabBar 页面是栈顶页面),不触发任何生命周期,直接结束;
  • 否则(该页面不为目标 tabBar 页面时):
    1. 将这个页面从页面栈中弹出;
      • 如果这个页面为其他 tabBar 页面,该页面成为悬垂页面,并:
        • 如果路由事件开始时页面栈中只有一个页面(即该 tabBar 页面是栈顶页面),触发它的 onHide 生命周期;
        • 否则(路由事件开始时该 tabBar 页面不是栈顶页面),不触发它的任何生命周期;
      • 否则(这个页面为非 tabBar 页面时),销毁该页面,触发 onUnload 生命周期;
      • 如果目标 tabBar 页之前已经被创建过(现在是一个悬垂页面),将其推入页面栈,触发 onShow 生命周期;
      • 否则(目标 tabBar 页不存在实例),创建目标 tabBar 页并推入页面栈,依次触发 onLoad, onShow 生命周期。

# 6. 重加载

  • openType: reLaunch, autoReLaunch

重加载路由 reLaunchautoReLaunch 表示销毁当前所有的页面,并载入一个新页面。

重加载路由的两种 openType 的区别主要为是否由开发者主动触发(或是由用户触发),这两种 openType 的路由逻辑基本一致。

触发方式

  1. reLaunch)调用 API wx.reLaunch, Router.reLaunch
  2. reLaunch)使用组件 <navigator open-type="reLaunch"/>
  3. autoReLaunch)小程序处于后台时,用户从扫码或分享等场景重新进入小程序

reLaunch 可以指定任意页面作为目标页面,无论它是否是小程序的首页或是否 tabBar 页。

请注意:reLaunchautoReLaunch 仅代表一种路由,并不等于小程序重启,小程序会在当前的 AppService 上继续运行,既不会重新启动 AppService 的 JavaScript 运行环境,也不会重新注入小程序代码或触发 App.onLaunch 生命周期,各种 JS 的全局变量或全局状态也不会被重置。

页面栈及生命周期处理

reLaunchautoReLaunch 事件发生时,页面栈中的所有页面将由顶至底依次被弹出并销毁,触发 onUnload 生命周期;之后所有悬垂页面将以不确定的顺序逐个被销毁,触发 onUnload 生命周期。所有页面都被销毁后,目标页面将被创建,并推入页面栈成为栈中唯一的页面,依次触发 onLoadonShow 两个生命周期。

# 7. 关闭小窗页面

  • openType: dismissPip

关闭小窗页面路由 dismissPip 表示关闭一个正处于小窗模式的页面。

# 附注

switchTab 事件的处理逻辑较为复杂,下面的表格用以展示在各种情况下进行 switchTab 时生命周期的触发情况,作为辅助说明。在这个表格中,我们假设:

  • tabA, tabB 为 tabBar 页面
  • C 是一个非 tabBar 页面,并且我们只会从 tabA 页面打开它
  • D 是一个非 tabBar 页面,并且我们只会从 tabB 页面打开它
当前页面 switchTab 目标页面 触发的生命周期(按顺序)
tabA tabA Nothing happened
tabA tabB tabA.onHide(), tabB.onLoad(), tabB.onShow()
tabA tabB(再次打开) tabA.onHide(), tabB.onShow()
C tabA C.onUnload(), tabA.onShow()
C tabB C.onUnload(), tabB.onLoad(), tabB.onShow()
D tabB D.onUnload(), C.onUnload(), tabB.onLoad(), tabB.onShow()
D(从转发进入) tabA D.onUnload(), tabA.onLoad(), tabA.onShow()
D(从转发进入) tabB D.onUnload(), tabB.onLoad(), tabB.onShow()
脑动脉硬化是什么意思 普通健康证都检查什么 倒牙是什么意思 糯米粉可以做什么好吃的 胆囊炎吃什么药好得快
师字五行属什么 dha什么牌子最好最安全 杜甫自号什么 甲状腺吃什么药 两个人可以玩什么
胆结石吃什么水果好 立竿见影是什么意思 扑炎痛又叫什么 什么是骨质增生 吃什么皮肤变白
什么是尊严 吃什么食物治便秘 头发油的快是什么原因 l表示什么单位 韩国的思密达是什么意思
上胸围90下胸围80是什么罩杯hlguo.com 下鼻甲肥大是什么意思hcv7jop9ns6r.cn 栓是什么意思zhiyanzhang.com m蛋白是什么hcv8jop5ns4r.cn 紫癜是什么原因引起的hcv9jop4ns5r.cn
太抽象了是什么意思gangsutong.com 龙眼是什么hcv8jop0ns4r.cn 什么样的河流bfb118.com 肾盂肾炎吃什么药hcv9jop6ns5r.cn 五代十国是什么意思hcv8jop8ns6r.cn
双下肢静脉彩超主要检查什么hcv8jop4ns0r.cn 三月是什么季节hcv9jop0ns1r.cn 小限是什么意思tiangongnft.com 什么什么言什么hcv8jop8ns0r.cn 血糖高吃什么主食hcv8jop4ns0r.cn
绿卡需要什么条件hcv9jop0ns9r.cn 什么叫戈壁滩hcv8jop4ns7r.cn 处女座后面是什么星座hcv9jop1ns7r.cn 大腿骨叫什么骨hcv9jop3ns4r.cn 拔牙后吃什么食物最好jingluanji.com
百度