微信小程序 页面跳转和数据传递
1.先导
在Android中,我们Activity和Fragment都有栈的概念在里面,微信小程序页面也有栈的概念在里面。微信小程序页面跳转有四种方式:
1.wx.navigateTo(OBJECT);
2.wx.redirectTo(OBJECT);
3.wx.switchTab(OBJECT);
4.wx.navigateBack(OBJECT)
5.使用实现对应的跳转功能;
分析:
其中navigateTo是将原来的页面保存在页面栈中,在跳入到下一个页面的时候目标页面也进栈,只有在这个情况下点击手机的返回按钮才可以跳转到上一个页面;
redirectTo和switchTab都是先清除栈中原来的页面,然后目标页面进栈,使用这两种跳转方式,都不能通过系统的返回键回到上一个页面,而是直接退出小程序;
redirectTo使用的时候一定要配合tabBar或是页面里面可以再次跳转按钮,否则无法回到上一个页面;
switchTab跳转的页面必须是tabBar中声明的页面;
tabBar中定义的字段不能超过5个页面,小程序的页面栈层次也不能超过5层。
navigateBack只能返回到页面栈中的指定页面,一般和navigateTo配合使用。
wx.navigateTo 和 wx.redirectTo 不允许跳转到 tabbar 页面,只能用 wx.switchTab 跳转到 tabbar 页面
事件的类别
1.点击事件tap
2.长按事件longtab
3.触摸事件
(1)touchstart 开始触摸
(2)touchend 结束触摸
(3)touchmove 移动触摸
(4)touchcancel取消触摸
这里就有个问题了,结束触摸和取消触摸有什么区别吗?
结束触摸可以理解为是主动的停止的触摸事件,比如我们正在移动一张图片,移动完成后就是结束触摸了,然后可能在移动的过程中,突然有事件来打断了触摸事件,比如电话来了,打断了你的触摸事件,这时候就是取消触摸了
4.其他的触摸事件 submit
每个控件都有自己的事件
事件的绑定
1.bind
上面的冒泡事件的例子就是使用bind的方式来绑定事件的
2.catch
那么catch绑定事件和bind的绑定事件有什么不同呢?我们通过修改上面的例子来说明,我们把view3的bindtap改为catchtap
然后我们看下运行的效果:
可以看到,我们使用catch的绑定事件后,点击界面3,是没有触发到父view的点击事件的
总结:使用bind的绑定事件,是可以触发冒泡事件的,就是可以触发父view的事件
使用catch是不会触发冒泡事件。
|