小程序

本文详细介绍了小程序中页面栈的概念,包括数据操作限制、页面层级管理和路由API的使用,如wx.navigateTo、wx.navigateBack、wx.redirectTo、wx.switchTab和wx.reLaunch。讨论了这些API如何影响页面栈,并探讨了页面跳转的最佳实践和限制,如页面栈最大层级为10层。此外,还讲解了事件处理,特别是触控事件如tap、double tap、longpress以及滑动事件的处理方式。
摘要由CSDN通过智能技术生成

课程大纲

(1)数据操作限制补充
(2)页面栈
(3)API页面跳转—router路由API
wx.navigateTo
wx.navigateBack
wx.redirectTo
wx.switchTab
wx.reLaunch

数据操作限制

针对上节所讲的程序注册器与页面注册器,简单做下补充,即页面数据data的操作限制
(1)直接修改Page实例的this.data而不调用this.setData是无法改变页面的状态的,还会造成数据不一致。
(2)由于setData是需要两个线程的一些通信消耗,为了提高性能,每次设置的数据不应超过1024KB;
(3)不要把data中任意一项的value设为undefined,否则可能会引起一些不可预料的bug。

页面栈

一个小程序拥有多个页面,且部分页面可能是互相嵌套的
在这里插入图片描述
页面代码案例

“myself我的”页面代码案例
在这里插入图片描述
在这里插入图片描述
页面层级可能会有三层或者更多层,我们把这样的一个页面层级称为页面栈。
在这里插入图片描述
第一个元素为首页,最后一个元素为当前页面
在这里插入图片描述
分析:
为了方便理解,我们这样描述页面栈:[ pageA, pageB, pageC ],其中pageA在最底下,pageC在最顶部,也就是用户所看到的界面

结合上面案例,比如当前正在浏览公司地址页面local,文件结构如下
在这里插入图片描述
则myself为PageA在最底部,local为PageC在最顶部,即当前浏览页

页面栈最大层级限制

注意:
刚开始开发小程序时,限制页面栈的最大层级为5层,后来接收到很多反馈,于是放大了限制,将其扩充到10层。
所以目前在编写的时候,小程序宿主环境限制页面栈的最大层级为10层 ,也就是当页面栈到达10层之后就没有办法再推入新的页面了。

页面跳转-路由

接下来结合上边[ pageA, pageB, pageC ]页面栈描述以下几个和导航相关的API
(1)wx.navigateTo
(2)wx.navigateBack
(3)wx.redirectTo
(4)wx.switchTab
(5)wx.reLaunch

(1)wx.navigateTo

描述:打开新页面,将原来的页面保留在页面栈中。在跳入到下一个页面的时候,目标页面同时进入页面栈中,在这种情况下点击手机的返回按钮才可以跳转到上一个页面。即保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 可以返回;

案例:wx.navigateTo({ url: ‘pageD’ }) 可以往当前页面栈多推入一个 pageD,此时页面栈变成 [ pageA, pageB, pageC, pageD ]

(1)wx.navigateTo —页面栈[pageA]变为[pageA,pageB]
在这里插入图片描述
在这里插入图片描述
(1)页面栈[pageA,pageB]变为页面栈[pageA,pageB,pageC]

在这里插入图片描述
在这里插入图片描述

(1)wx.navigateTo
在这里插入图片描述

(1)wx.navigateTo 验证页面栈同页叠加
接下来验证下上述导图
在这里插入图片描述
(1)wx.navigateTo 验证页面栈同页叠加
接着上面验证,点击公司地址跳到公司地址页面,此时再在公司地址页面中添加跳页按钮,利用wx.navigateTo方法跳到公司信息页面
在这里插入图片描述
(1)wx.navigateTo验证页面栈状态独立
跟验证页面栈同页叠加步骤类似,在公司信息页面添加操作按钮
在这里插入图片描述
(1)wx.navigateTo验证页面栈状态独立

跟验证页面栈同页叠加步骤类似,在公司信息页面添加

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值