본문 바로가기

프론트-엔드/리액트-네이티브(ReactNative)

[RN] React Navigation Docs(5) - Switch Navigator


React Navigation Docs시리즈에서는 React Navigation 공식 홈페이지(https://reactnavigation.org)에 있는 내용을 정리해 보고자 합니다. 자세한 내용은 링크를 참고해주세요.


[RN] React Navigation Docs(1) - navigate

[RN] React Navigation Docs(2) - params



Stack Navigator, Switch Navigator, Drawer Navigator, Tab Navigator


react-navigation 에서 제공하는 navigator는 크게 위의 4가지가 있습니다. 그 중 Switch Navigator를 소개하고자 합니다.



Switch Navigator


CreateSwitchNavigator(RouteConfigs, SwitchNavigatorConfig)


Switch Navigator는 CreateSwitchNavigator 메소드로 생성할 수 있습니다.

그럼 먼저, 해당 Navigation의 로직을 수정할 때 옵션을 줄 수 있는 SwitchNavigatorConfig 의 몇몇 옵션을 보겠습니다.


initialRouteName - 처음 로드할 때 초기 탭 경로에 대한 routeName
path- routeConfigs에 설정된 경로를 재정의하는 경로 구성에 대한 routeName 매핑을 제공
backBehavior - 뒤로가기 버튼을 눌렀을 때, 탭 스위치가 초기 경로로 전활될지의 여부. 'initialRoute'인 경우 스위치의 초기 경로로 돌아간다.  'none' 으로 설정하면, 전 route로 가거나 전 route가 없을 시 앱이 종료된다. 디폴트는 none.


Switch Navigator가 앞서 소개한 Stack Navigator와 다른 점은 path 와 backBehavior 에서도 알 수 있습니다.


Stack Navigator는 navigate로 스크린 간 이동을 했을 때 스크린들이 해당 Route의 Stack에 쌓인다고 볼 수 있는데, Switch Navigator는 로그가 남지 않고 이동한 스크린이 초기 경로처럼 작동하게 됩니다. 따라서, Switch Navigator는 Login과  같은 기능을 구현할 때 적합합니다.


추가적으로 제가 경험하면서 느낀 또 다른 차이점은 animation 입니다.

Switch Navigator에는 제공되는 애니메이션 기능이 없을 뿐더러, 이동할 때 어떠한 니메이션 효과도 발생하지 않습니다.



[RN] React Navigation Docs(1) - navigate

[RN] React Navigation Docs(2) - params