页面返回事件 v1.4.8+
注意
在有带原生返回按钮的页面中使用 onBackPress 应更改为 onBeforeBack。相反则可以继续使用 onBackPress
使用 onBeforeBack
路由插件通过动态更改 onBackPress 生命钩子做到路由返回页面拦截的。早期版本是没有这样一个生命钩子的,所有的处理逻辑都放在全局路由守卫下。后来应广大 大佬 的要求,说这样有点麻烦,拿不到当前页面的数据 (其实很好拿,不是吗?)。OK!! 那咋们就给多加一个生命钩子嘛,莫问题的啦!注意:在有带原生返回按钮的页面 onBackPress 钩子会被重置为 onBeforeBack,所以你写 onBackPress 钩子是无效的。用或者更好! 为啥呢?看操作…
router5.vue
export default {data() {return {};},onBeforeBack(args){return new Promise(resolve=>{setTimeout(()=>{resolve();},3000)})//orreturn true //阻止页面关闭},}
好处如下:
可返回
Promise,告诉路由插件需要异步处理这个钩子、resolve(true)可以阻止关闭页面。你还可以同步返回
true/false/undefined返回true则阻止关闭。按流程执行,先执行完
onBeforeBack钩子、顺利通行 则执行全局守卫、后置守卫、最后结束。
原始的 onBackPress
在没有带原生返回按钮的页面中依旧使用 onBackPress!路由插件不会在这些页面注入 onBeforeBack 钩子函数。
兼容其他端写法:
使用js封装返回的方法,在
onBackPress及onBeforeBack都调用此方法。放心两者不会同时执行!原型挂载方法,最后还是在
onBackPress及onBeforeBack中调用此方法。
当前内容版权归 SilurianYang 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 SilurianYang .