The fact that the #page
hash is displayed in the navigation bar is actually very helpful, because it means that if the user refreshes the page, or bookmarks it for later, the router will be able to load the correct route for you.
If it's just the #
sign you don't like, you can use the router's pushState support (docs) to get normal URLs such as domain.com/page
instead of domain.com/#page
. Just be aware that for older browsers that don't support pushState the #
URLs are still used, and you'll need to configure your web server to return the HTML content page for all the sub-page URLs, too.
Unless you have some very pressing need to hide the navigation state, I wouldn't worry about it. Just name your routes in a "user-friendly" way.