pub struct FullstackState { /* private fields */ }Available on crate feature
server only.Expand description
State used by FullstackState::render_handler to render a dioxus component with axum
Implementations§
Source§impl FullstackState
impl FullstackState
Sourcepub fn headless() -> FullstackState
pub fn headless() -> FullstackState
Create a headless FullstackState without a root component.
This won’t render pages, but can still be used to register server functions and serve static assets.
Sourcepub fn new<M>(
config: ServeConfig,
root: impl ComponentFunction<(), M> + Send + Sync + 'static,
) -> FullstackStatewhere
M: 'static,
pub fn new<M>(
config: ServeConfig,
root: impl ComponentFunction<(), M> + Send + Sync + 'static,
) -> FullstackStatewhere
M: 'static,
Create a new FullstackState
Sourcepub fn new_with_virtual_dom_factory(
config: ServeConfig,
build_virtual_dom: impl Fn() -> VirtualDom + Send + Sync + 'static,
) -> FullstackState
pub fn new_with_virtual_dom_factory( config: ServeConfig, build_virtual_dom: impl Fn() -> VirtualDom + Send + Sync + 'static, ) -> FullstackState
Create a new FullstackState with a custom VirtualDom factory. This method can be
used to pass context into the root component of your application.
Sourcepub fn with_config(self, config: ServeConfig) -> FullstackState
pub fn with_config(self, config: ServeConfig) -> FullstackState
Set the ServeConfig for this FullstackState
Sourcepub async fn render_handler(
__arg0: State<FullstackState>,
request: Request<Body>,
) -> Response<Body>
pub async fn render_handler( __arg0: State<FullstackState>, request: Request<Body>, ) -> Response<Body>
SSR renderer handler for Axum with added context injection.
§Example
#![allow(non_snake_case)]
use std::sync::{Arc, Mutex};
use axum::routing::get;
use dioxus::prelude::*;
use dioxus_server::{FullstackState, render_handler, ServeConfig};
fn app() -> Element {
rsx! {
"hello!"
}
}
#[tokio::main]
async fn main() {
let addr = dioxus::cli_config::fullstack_address_or_localhost();
let router = axum::Router::new()
// Register server functions, etc.
// Note you can use `register_server_functions_with_context`
// to inject the context into server functions running outside
// of an SSR render context.
.fallback(get(render_handler))
.with_state(FullstackState::new(ServeConfig::new(), app))
.into_make_service();
let listener = tokio::net::TcpListener::bind(addr).await.unwrap();
axum::serve(listener, router).await.unwrap();
}Trait Implementations§
Source§impl Clone for FullstackState
impl Clone for FullstackState
Source§fn clone(&self) -> FullstackState
fn clone(&self) -> FullstackState
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for FullstackState
impl !RefUnwindSafe for FullstackState
impl Send for FullstackState
impl Sync for FullstackState
impl Unpin for FullstackState
impl UnsafeUnpin for FullstackState
impl !UnwindSafe for FullstackState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> InitializeFromFunction<T> for T
impl<T> InitializeFromFunction<T> for T
Source§fn initialize_from_function(f: fn() -> T) -> T
fn initialize_from_function(f: fn() -> T) -> T
Create an instance of this type from an initialization function
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<Ret> SpawnIfAsync<(), Ret> for Ret
impl<Ret> SpawnIfAsync<(), Ret> for Ret
Source§impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
Source§fn super_from(input: T) -> O
fn super_from(input: T) -> O
Convert from a type to another type.
Source§impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
Source§fn super_into(self) -> O
fn super_into(self) -> O
Convert from a type to another type.