navigation中有三种行为不同的导航器:栈导航器、标签导航器、Switch导航器。
1、栈导航器
堆栈导航器主要是createStackNavigator
创建,它的路由是按照栈数据结构存放的。当前屏幕显示的永远是栈顶的screen组件。跳转行为是:栈中不存在就push到栈顶,执行componentDidMount
。栈中存在就直接跳转,并且跳转到的组件到栈顶之间的screen组件和导航状态会全部卸载,依次执行componentWillUnMount
事件,卸载顺序是冒泡执行,直到栈顶的组件。
2、标签导航器
标签导航器由createBottomTabNavigator/createMaterialBottomTabNavigator/createMaterialTopTabNavigator
创建。导航状态存放方式和对象一样,不是按照顺序存放的。第一次跳转会执行componentDidMount
,以后跳转不会卸载当前组件,不执行生命周期。
3、Switch导航器
Switch导航器是createSwitchNavigator
创建。createSwitchNavigator
的跳转是先卸载当前所有导航,然后加载跳转的导航组件screen。一次只显示一个屏幕。切换就先卸载当前的组件,再加载要切换到的组件。每次只显示一个组件。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。