小程序预置的一些组件中,有几个组件是比较特殊的,可以实现物理返回操作时不退出页面:
- picker:这个组件是一个弹出式的时间或者省市区的选择器,能实现返回不退出页面,很不错,但是适用场景仅限选择器。
- page-container:这个是比较通用的提供返回拦截操作的组件,这个组件很适合做 popup 组件,我当时发现的时候非常兴奋,解决了上面提到的问题——物理返回操作时不退出页面,然而,这个组件的缺陷是一个页面只能存在一个这样的组件实例。
我在项目中使用 page-container 封装了一个 popup 组件,用起来很舒服,能够实现物理返回操作不退出页面,但是一个页面中是非常可能出现有多个 popup 的业务场景的,这个时候会导致只有一个 popup 会生效,其他的基于 page-container 封装的 popup 组件无法生效。
反观 picker 这样的组件,是能够允许存在多个组件实例的,并不会影响到功能,我只是不能理解的是,为什么 page-container 会有这样的限制。
希望小程序在这方面(物理返回操作时不退出页面)能有计划做更多的努力和方案,由衷的期望❤️。