Rendering server-side or browser-side
To differentiate rendering on the server and in the browser:
use vertigo::{dom, get_driver}; let place = if get_driver().is_browser() { "in the browser" } else { "on the server" }; dom! { <div> "I'm " {place} </div> }
This is useful when routing. For a page which requires an authentication, it's better to not render anything unless the browser checks for a cookie.
use vertigo::{dom, get_driver}; fn get_username_from_cookie() -> Option<String> { unimplemented!() } if get_driver().is_browser() { if let Some(username) = get_username_from_cookie() { dom! { <div>"Logged in as user " {username}</div> } } else { dom! { <div>"Not logged in"</div> } } } else { dom! { <div>"Loading..."</div> } }