开发流程
QMB+(Kami+QApp+Yo)+js(QunarAPI+Qapp-Hy) -- native(Hytive Bridge)
Qapp
-
设计模式
- 视图
- 路由
在移动端,Qapp模拟一个新的页面,以native的api完成跳转动画
构成
-
view
- QApp.defineView
- QApp.view.show 做弹层
- QApp.view.open 打开视图
- View.root 获取根节点<qapp>
- View.param 获取视图携带的参数
- View.actived 当视图被激活的时候触发
-
view和plugin
- this.ajax(plugin)来调用plugin。使用this可以将该方法绑定到对应的视图上,视图销毁,对应的ajax也会销毁
- modules下面的view可以规定他的子视图。open打开的都是并列的,show弹层出现一部分,也是并列的,注意这个视图不在历史里
- lanch传参
bindEvents执行顺序
ready,beforeshow,show,actived
-
deactived,beforeHide,hide,receiveData
view.bind("actived",function(){});
router路由
< href="#a?" qapp-role="router" > === router.open("viewname") 或 QApp.goto("viewname") 或 router.backto("viewname")
goto/backto 是跳转历史上存在的该视图,没有才打开新的。添加“target="_blank"”属性,则直接打开新视图
<href="#!back"> === router.back()
Qapp.router.home 回到第一个页面
Qapp.router.exit 全部退出
历史堆栈
执行队列。例如调回首页,中间的视图都完整执行一遍
hash同步??
receiveData用于子视图回退时,传回来的参数
receiveData(data){ data:view.name} 判断是哪个子视图addOpenFilter/addBackFilter 可以打开回退 做统一逻辑。最多用来校验
视图什么时候会被销毁。打开的视图都不会销毁,当逐级返回时,销毁后面的视图
- 生命周期
- 参数传递
- 传递: (前to后,父to子)param
- 回调: (后to前,子to父)
- 并列: showview的方式,往回传参
- 嵌套:
- view.parentView/parentModule
- storage
自己使用的公共样式可以提出来,大家公用module样式放在module