이슈
Flutter
를 통해 간단한 웹페이지를 개발하게 되었다. 하지만 기존에 사용하던 Navigator
클래스를 이용한 페이지 네비게이션 방식은 URL
입력에 따른 라우팅은 지원하지 않는다. 어떤 라우팅 방식을 이용해야 할까? 또, flutter web
을 이용해 웹을 빌드하면 URL
맨 끝에 해시 기호(#) 가 항상 붙는다. 이는 어떻게 없앨 수 있을까?
해결
라이브러리
코드
1 |
|
고찰
Fluro
위 코드에서 확인할 수 있듯이 아주 간단하게 라우팅을 설정할 수 있다. 라우팅용 클래스를 따로 생성하고 URL
에 따른 라우터를 정의해주면 된다. 이 때 URL
에서 파라미터를 가져와 표시하려는 화면 클래스의 파라미터로 넘길 수 있다. 이를 통해 화면 클래스에서 파라미터에 따른 fetching
을 해주면 된다. 또 transitionType
을 통해 다양한 화면 전환 효과를 적용할 수 있다. 이렇게 화면 전환 효과까지 간편하게 적용할 수 있다는 것 또한 fluro
만의 장점이다.
URL Strategy
URL
에서 해시 기호(#)는 url_strategy
를 import
하고 main
함수에서 setPathUrlStrategy()
를 호출하는 것만으로 해결된다. URL
전략에는 path url
과 hash url
두 가지가 있는데 이 중에서 path url
방식으로 세팅함으로써 해결하는 방식이다.